我可以问你一个问题吗? 如何获取 Facebook 访问 token 以使用 Facebook Android SDK 3.8 创建? 我尝试了各种方法来做到这一点。但似乎我没有以正确的方式做到这一点。 该应用程序是 Android 4.0 SDK 和 API 级别 14。
在我的 UI 中,我有一个经典的 Android 按钮。
<Button
android:id="@+id/btn_facebook"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="80dp"
android:background="@drawable/button_facebook_normal"
android:text="@string/btn_facebook"
android:textColor="@color/white" />
在我的 AndroidManifest.xml 中
还有这个
<!-- FACEBOOK SDK -->
<activity android:name="com.facebook.LoginActivity" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/app_id" />
字符串.xml
<string name="app_id">XXXXXXXX</string>
我只想获取按钮的onClick访问 token ,然后将其发送到API应用程序后端。 在我的配置中,命名空间丢失了,但我不知道将它放在 facebook sdk 配置中的什么地方。
非常感谢。
我想从中得到一些东西 https://developers.facebook.com/docs/facebook-login/access-tokens#usertokens
好的,我的 AppId 指的是一个我没有注册为开发人员的应用程序,所以...... :) 瞧,应用程序在沙箱中。现在我的屏幕显示“此应用程序需要您的信息”
现在唯一缺少的是访问 token ,此时它是一个空字符串..
这是代码
private String getAccessToken() {
Session.OpenRequest request = new Session.OpenRequest(this);
request.setPermissions(Arrays.asList("email", "user_birthday"));
request.setCallback(mCallback);
// get active session
Session mFacebookSession = Session.getActiveSession();
if (mFacebookSession == null || mFacebookSession.isClosed()) {
mFacebookSession = new Session(this);
}
mFacebookSession.openForRead(request);
return mFacebookSession.getAccessToken(); // the access token is empty here
}
StatusCallback mCallback = new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state,
Exception exception) {
// TODO Auto-generated method stub
System.out.println("test : "+session.getAccessToken());// the access token is empty here too.
}
}; // the code you already have
最佳答案
您需要将 onActivityResult 方法的参数传递给 facebook session onActivityResult 方法,并且访问 token 不会为空,如下所示:
/**
* Required for Facebook.
*/
@Override
protected void onActivityResult(int arg0, int arg1, Intent arg2) {
super.onActivityResult(arg0, arg1, arg2);
Session.getActiveSession().onActivityResult(TheActivity.this, arg0, arg1, arg2);
}
它在facebook android 登录文档中说明here ,在“身份验证更改触发器”部分的末尾。
关于android - 如何使用 Facebook Android SDK 3.8 获取 facebook 访问 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23283419/