我可以问你一个问题?如何获取使用Facebook Android SDK 3.8创建的Facebook访问令牌?我尝试了各种方法来做到这一点。但是似乎我做的方式不正确。该应用是Android 4.0 SDK和API级别14。
在我的用户界面中,我有一个经典的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" />
strings.xml
<string name="app_id">XXXXXXXX</string>
我只想获取按钮的onClick的访问令牌,然后可以将其发送到API应用程序后端。在我的配置中,名称空间丢失了,但我不知道将其放置在facebook sdk配置中的位置。
在此先多谢。
我尝试从https://developers.facebook.com/docs/facebook-login/access-tokens#usertokens中获取一些东西
好的,我的AppId指向一个我没有注册为开发人员的应用程序,所以... :)瞧,该应用程序位于沙箱中。现在,我的屏幕上显示“此应用程序需要您的信息”
现在唯一缺少的是访问令牌,该令牌此时为空字符串。
这是代码
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 =新的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会话onActivityResult方法,访问令牌不会为空,如下所示:
/**
* 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的登录文件中称这里,在“身份验证变更触发”部分的结尾。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句