Articles of Facebookandroid sdk

Android Facebook SDK 3.0validation

我实际上是从facebook sdk示例中跟踪SessionLoginFragment.java示例。 我真的不明白的是这样的: 当我做 session.openForRead(new Session.OpenRequest(fragment).setCallback(statusCallback)); 将我的用户login到Facebook,并要求基本的读取权限(只是为了testing集成),它根本不工作。 我用debugging器挖了一下,然后沿着path走。 如果你不把requestCode放到会话的OpenRequest中,它会给它一个随机的(这是可以的)。 openForRead(我的实际会话处于CREATED状态)将创build权限对话框。 当你点击“确定”button时,它会执行一个 request.getStartActivityDelegate().startActivityForResult(intent, request.getRequestCode()); 你可以看到来自fb sdk源代码的代码。 那么requestCode是相同的会议(这里没关系)。 当fblogin到系统时,它会完成他的facebook.LoginActivity,并在我的活动中回叫我的onActivityResult。 问题是这里requestCode与请求的不一样。 我不知道为什么,从哪里来! 如果我进入我的fb帐户我的应用程序在那里,所以这意味着我已经完成了正确的authenticationstream程。 但是,我不会从我的应用程序正确authentication,因为这个问题。 你知道为什么,如何解决它? 谢谢。 更新stream程细节: 这是实际的stream程(从片段 ): session.openForRead(new Session.OpenRequest(fragment).setCallback(statusCallback)); 创build它之后,请求代码是(总是) 64206现在openForReadstream将调用(最后一部分) request.getStartActivityDelegate().startActivityForResult(intent, request.getRequestCode()); 这从Facebook SDK调用LoginActivity,并执行客户端/服务器validation/ oauth 现在我的活动被称为onActivityResult(不在片段,但在活动部分) 在这里我打电话 Session.getActiveSession().onActivityResult(activity, requestCode, resultCode, data); 这里requestCode是requestCode 129742 这怎么可能? 正如我已经说过,所有这些stream程中的问题是返回到onActivityResult的requestCode不同于我的pendingRequest requestCode,并且这个break(getActiveSession()。onActivityResult返回而不执行代码)login客户端部分。

注销Facebook Android SDK

我使用Facebook Android SDK中的LoginButtonlogin到我的应用程序。 如何以编程方式从任何活动注销用户?

toByteArray()将不会被parsing为Facebooklogin

我正在构build一个需要Facebooklogin和身份validation的应用程序。 我在跟随 https://developers.facebook.com/docs/android/getting-started#create-app 我得到这个错误:当我点击Facebookloginbutton: 多个post说这个代码应该解决这个错误 Android中的Facebooklogin时,键哈希不匹配 : try { PackageInfo info = getPackageManager().getPackageInfo( "com.hitup.hitup", PackageManager.GET_SIGNATURES); for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); } } catch (NameNotFoundException e) { } catch (NoSuchAlgorithmException e) { } 但是toByteArray()方法无法parsing! 我该如何解决这个错误,并为我的应用程序实现简单的Facebooklogin?

Facebook Android SDK ProfilePictureViewcaching

我正在使用ProfilePictureView类来显示个人资料图片。 需要一些时间来请求这些图像并显示它们。 在具有多个configuration文件图片的ListView中,显然需要更长的时间。 有没有人有一个模式来caching这些图片,以便他们只是每隔一段时间获取? 据我所知,Facebook的Android SDK没有任何内置的caching机制,这种types的事情(纠正我,如果我错了,我希望)。 我会有兴趣听到其他开发人员解决这个问题,即使这意味着远离ProfilePictureView类。

Android Studio – Facebookloginbutton呈现错误

我有关于Facebook SDK和loginbutton的问题。 当我试图把loginbutton,我收到此消息 Rendering Problems The following classes could not be found: com.facebook.widget.LoginButton (Fix Build Path, Create Class) Tip: Try to build the project 我不知道为什么Android Studio没有渲染button。 我成功地添加了模块,我可以使用Facebook SDK类,如会话等… 你知道可能是什么问题吗? 提前致谢!

在Android应用程序中获取刷新的Facebook令牌的代码是什么?

我正在开发一个Android应用程序。 随着Facebook的offline_access权限的即将弃用,我正在尝试使用Graph API来扩展Facebook令牌。 https://graph.facebook.com/oauth/access_token? client_id=APP_ID& client_secret=APP_SECRET& grant_type=fb_exchange_token& fb_exchange_token=EXISTING_ACCESS_TOKEN 任何人都可以提供详细的代码,演示如何实现上述代码到Android应用程序,并获得刷新的Facebook令牌? 感谢您的时间。 更新二: 进步(我认为)! 在facebook请求方法中使用完整的URL会导致基本URL被添加到URL的开头而不是 String refreshUrl = "https://graph.facebook.com/oauth/access_token?client_id=12345678910&client_secret=abcdefghijklmnopqrstuvwxyz&grant_type=fb_exchange_token&fb_exchange_token="+currentAccessToken; 应该使用 String refreshUrl = "oauth/access_token?client_id=12345678910&client_secret=abcdefghijklmnopqrstuvwxyz&grant_type=fb_exchange_token&fb_exchange_token="+currentAccessToken; 但是现在我得到了响应{“error”:{“message”:“错误validation应用程序。无效的应用程序ID。”,“type”:“OAuthException”,“code”:190}} 更新一: 这是我所尝试过的。 代码完成,即在调查器上的OnComplete被调用,但是响应不包含新的访问令牌或过期值。 void refreshWithGraph() { AsyncFacebookRunner extendingAsyncRunner = new AsyncFacebookRunner(facebook); Bundle parameters = new Bundle(); //the variable currentAccessToken is obtained after authorisation is complete using currentAccessToken = facebook.getAccessToken(); String refreshUrl = […]

使用maven封装android facebook facebook sdk作为apklib

我已经使用maven-android-plugin 3.0.0-alpha-7将facebook android sdk作为apklib包装。 它看起来像这样: $ unzip sdk-1.0-SNAPSHOT.apklib Archive: sdk-1.0-SNAPSHOT.apklib creating: META-INF/ inflating: META-INF/MANIFEST.MF inflating: AndroidManifest.xml creating: assets/ creating: res/ creating: res/drawable/ creating: res/drawable-hdpi/ creating: res/drawable-ldpi/ inflating: res/drawable/facebook_icon.png inflating: res/drawable-hdpi/facebook_icon.png inflating: res/drawable-ldpi/facebook_icon.png creating: src/ creating: src/com/ creating: src/com/facebook/ creating: src/com/facebook/android/ inflating: src/com/facebook/android/AsyncFacebookRunner.java inflating: src/com/facebook/android/DialogError.java inflating: src/com/facebook/android/Facebook.java inflating: src/com/facebook/android/FacebookError.java inflating: src/com/facebook/android/FbDialog.java inflating: src/com/facebook/android/Util.java 然后我将它安装到我的项目的本地回购,并将其作为maven dep …并运行生成我得到这个: […]

Android Facebook应用程序:访问令牌过期(expires_in)始终为0

我正在开发一个使用Facebook集成的应用程序。 我试图从facebook库类中接收access_token和expires_in标记。 一旦我login,我正确地得到access_token,但我总是得到expires_in令牌总是0.因此,我isSessionValid()方法总是返回false。 请让我知道是否有人遇到了这个问题,并解决了这个问题。 我的代码运行得很好,当我没有在模拟器中安装的Facebook应用程序。 我得到的Web视图,我可以login和更新状态。 但是当我安装Facebook应用程序,点击更新状态菜单选项打开Facebook应用程序,我redirect到权限页,然后我得到一个错误,说“无法接收访问令牌”。 这实际上是因为expires_in令牌为0。 我不想让应用程序的用户卸载Facebook应用程序,如果他们已经安装。 请让我解决这个问题。 谢谢, PUNIT

如何在Android中从捆绑提取值

通过Facebook_Android SDK发送请求时,我得到一个包。 有人可以解释它是什么数据types,以及如何提取其中的数据? 谢谢。 01-28 11:58:07.548: I/Values(16661): Bundle[{to[0]=100005099741441, to[1]=100005089509891, request=134129756751737}] 编辑这里,[i]是一个string数组。 我能够做到这一点。 但我不认为它是正确的做法。 for(int i=0;i< size-1;i++){ System.out.println(values.getString("to["+i+"]")); } 其中size是被称为value的Bundle的大小

你能解释为什么在Android上suport v4和v7

我正在检查Android的支持库,但我不明白他们为什么分为V4和V7? 为什么不使用一个支持库的所有版本? 甚至所有的支持类,在SDK上吗?