Articles of facebook graph api

Facebook – “无法通过用户名查询用户”解决方案

我正在开发一个Android应用程序。 我正在使用HttpURLConnection来获取Facebook用户的个人资料图片。 URL如下所示: http://graph.facebook.com/?ids=username1,username2,username3&fields=picture&type=square 但是现在,由于v2.2不允许我获取未使用我的Facebook应用程序的用户的个人资料图片,因此会抛出错误: {“error”:{ “message”: “(#803) Cannot query users by their username (username1)”, “type”: “OAuthException”, “code”: 803 } } 我对使用“Facebook SDK for Android”不感兴趣。 假设我使用popup式webview来授权我的Facebook应用程序。 什么url会让我做同样的事情? 有这样一个简单的解决方案: graph.facebook.com/?app= APP-ID &ids = username1,username2&fields = picture

从Facebook Graph-API获取用户图片

我想在列表视图中显示用户个人资料图片。 当我尝试从android调用graph-api来检索图像时,我总是得到以下错误。 java.io.IOException: Hostname was not verified at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.getSecureSocket(HttpConnection.java:170) at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnection$HttpsEngine.connect(HttpsURLConnection.java:398) at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.sendRequest(HttpURLConnection.java:1224) at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.doRequestInternal(HttpURLConnection.java:1558) at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.doRequest(HttpURLConnection.java:1551) at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1052) at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnection.getInputStream(HttpsURLConnection.java:252) at com.facebook.android.Util.openUrl(Util.java:200) at com.facebook.android.Facebook.request(Facebook.java:559) 这是我使用的代码: private static void retrieveProfilePicture(String userId) throws MalformedURLException, IOException{ facebook = FacebookHelper.getInstance(); Bundle bundle = new Bundle(); bundle.putString(Facebook.TOKEN, facebook.getAccessToken()); Object picture = facebook.request(“/”+userId+”/picture”, bundle, “GET”); 当我在浏览器中执行相同的调用(https://graph.facebook.com//picture?access_token=)时,我会在这样的url上返回返回的图像,如https://fbcdn-profile-a.akamaihd.net/… 以什么格式传送给我的图像? 带有引用映像的jSON(url)?

facebook如何使用密钥哈希validation应用程序的真实性?

在使用Facebook开发Android应用程序时,您需要将应用程序的密钥哈希上传到其网站。 有了这个,他们声称他们能够validation他们的服务器的调用实际上是从您的应用程序。 我已经读过这个问题Facebook如何validation移动应用程序,但它并没有真正提供实际的实现。 我试过查看facebook库的源代码,但无法弄明白。 从Android应用程序发送哪些数据以及可以在服务器中针对此哈希validation的加密? facebook实施的方法是否安全? 如果是,并且它可以在任何服务器中实现,我可以使用它来validation我的服务器我的应用程序没有使用不同的代码重新编译(这往往经常发生:() 我目前正在以这种方式实现这个想法: Signature[] sigs = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES).signatures; for (Signature sig : sigs) { verifyInServer(sig.hashCode()); } 其中verifyInServer是伪代码,用于针对具有签名存储值的服务器进行的检查。 它现在已经工作了,但我不确定它是否安全,而且我宁愿检查一个密钥哈希(它的公共)而不是这个签名数据(我不确定它是否是私有的,而不是可以欺骗的用户 )。

在Facebook Android SDK 4.0中设置按钮的登录/注销文本?

我的xml看起来像这样 和背景drawble xml是 现在在android工作室预览屏幕中,它按预期显示。 但是当我在手机或模拟器上运行它时,默认显示“登录FACEBOOK”,就像这样 如何在运行应用程序时获取自定义文本?

登录错误:登录此应用程序时出错。 请稍后再试

我收到了这个错误。 当我尝试使用Facebook登录我的应用程序时。 当我第一次进行身份validation时,它将正常工作。 在我取消了我的应用程序并且现在尝试使用Facebook登录后,我收到此错误。 另一个问题 :在device1中进行身份validation并尝试在设备2上使用facebook登录时也会出现同样的错误。 我find的解决方案:当我从Facebook应用程序设置中删除App身份validation时,它正在上面的场景中运行,但这不是一个很好的解决方案,我们可以告诉用户如何执行此操作? btnFbLogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(accessToken != null) { boolean expires = accessToken.isExpired(); if(!expires) { performFbLoginOrSignUp(accessToken); } } else { LoginButton loginButton = (LoginButton) findViewById(R.id.login_button); callbackManager = CallbackManager.Factory.create(); if (loginButton != null) { loginButton.setReadPermissions(“public_profile”, “email”, “user_friends”); if (CommonUtil.isConnectingToInternet(LoginActivity.this)) { loginButton.performClick(); loginButton.setPressed(true); loginButton.invalidate(); loginButton.registerCallback(callbackManager, mCallBack); […]

Google Cloud Endpoints和用户身份validation

我目前刚进入AppEngine世界,并希望使用Cloud Endpoints为我正在开发的移动应用程序创建后端。 我现在的一个问题是关于用户的身份validation。 我一直在关注App Engine上的Udacity的MOOC,他们教我们如何使用Google帐户validation用户的API请求。 在后端,我们只需要在我们的方法中添加一个User参数,并检查用户是否已登录。据我所知,此用户参数由App Engine根据我们的请求的Authorization标头生成。 ( 可能需要一些确认 ) 现在,有一些我不太了解的东西,并且在这个MOOC上没有那么好解释。 现在,除了谷歌之外,我想知道这是否与其他OAuth方案兼容? 那么,如果我想实现Facebook身份validation,我会简单地传递facebook访问令牌吗? 根据我搜索的内容,在Android上使用Facebook SDK会让我能够生成一个用户访问令牌,用于识别我的用户到Facebook 。 将它发送到我的后端后,我想用Facebook检查它的有效性,如果它有效,请为我的应用程序创建一个新用户。 现在,我还想生成一个新标记,用于标识我的应用程序的用户。 我需要做什么?

获取好友列表facebook 3.0

我正在尝试使用新的SDK(3.0)从facebook获取我的朋友列表。 我遇到了与我需要在Bundle中插入什么types的params以及如何使用newMyFriendRequest和GraphAPI相关的问题。 我没有在facebook文档中find关于我们必须使用哪种字段的地方。 基于GraphExplorer,我在我的Bundle中插入了带有“id,name,friend”字符串的键“fields”作为值。 下面的代码显示了我现在正在做的事情。 在我得到我的照片和名字后,我执行newMyFriendRequest。 我相信它默认使用GraphAPI。 我在StackOverflow上看到过一些相关post: 如何使用新的Android SDK发送FQL查询 Facebook Android SDK请求参数:在哪里查找文档? 它对我帮助很小,我不想使用FQL。 对于响应II我收到这个JSON就像一个答案: {Response: responseCode: 500, graphObject: null, error: {HttpStatus: 500, errorCode: 100, errorType: FacebookApiException, errorMessage: Unsupported operation}, isFromCache:false} 请注意,我是Facebook SDK for Android的新手。 private void onSessionStateChange(final Session session, SessionState sessionState, Exception ex){ if(session != null && session.isOpened()){ getUserData(session); } } private void getUserData(final […]

如何避免在Android Facebook SDK中显示已经授权的应用程序对话框

当我使用单一loginFacebook的Android SDK时,我得到一个完全无用的页面。 "You have already authorized app. Press "Okay" to continue. 这个页面会破坏用户体验。 我怎样才能删除这个屏幕? 提前致谢。 注意:我们不会看到这个问题如果FB应用程序安装在设备上。 只有FB应用程序在设备中不可用时才会提出。

图表请求错误500

我的应用程序使用Facebookloginbutton的Facebook的android-sdk。 它一直工作到最后几天,现在在一个页面上的图表请求上 Bundle parameters = new Bundle(); parameters.putString("fields", "id,icon,created_time,name,caption,description,message,link,full_picture,shares"); parameters.putString("limit", "50"); parameters.putString("locale", mLocale); String pathPosts = path + "/posts"; GraphRequest request = new GraphRequest( AccessToken.getCurrentAccessToken(), pathPosts, parameters, HttpMethod.GET, new GraphRequest.Callback() { @Override public void onCompleted( GraphResponse response) { mResponse = response; } }); request.executeAndWait(); 我得到了OAuthException错误 {Response:responseCode:500,graphObject:null,error:{HttpStatus:500,errorCode:1,errorType:OAuthException,errorMessage:发生未知错误。}} 更新发现,限制低于33等于没有错误 parameters.putString("limit", "33"); 对于其他页面的Feed,限制必须小于等于7才能正常工作 parameters.putString("limit", "7"); 问题:现在图表api请求页面订阅源的限制规则是什么?

如何获得Facebook的用户访问令牌在android中?

我正在使用restfb API来访问我的朋友在Java中的照片。 为了访问这些照片,我使用Graph API Explorer手动生成访问代码,并将其作为parameter passing给restfb API调用。 但是现在我想通过代码(编程)来生成这个访问令牌。 我看过fb android样本,特别是hackbook。 我没有看到任何访问代码正在生成,我可以用于我自己的应用程序。 我需要创build一个新的应用程序,并得到一些秘密等? 任何build议将不胜感激。 我已经看到这些解决scheme( 解决scheme1和解决scheme2 )在计算器上,但我还没有得到从哪里开始? Update-1 :: 我正在使用以下代码login并获取login用户的访问令牌。 但问题是,它只适用于我在facebook上创build应用程序的帐户来生成app_id。 它不会收到其他帐户的回电。 任何build议请。 如果您不知道从哪里开始,请按照第6步从头创build一个新的应用程序。 public class MainActivity extends Activity implements OnClickListener { Button login; TextView accessToken; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); login = (Button) findViewById(R.id.login); accessToken = (TextView) findViewById(R.id.accessToken); login.setOnClickListener(this); // start Facebook […]