android - 如何使用 Facebook Android SDK 3.8 获取 facebook 访问 token ?

标签 android facebook sdk access-token

我可以问你一个问题吗? 如何获取 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/

相关文章:

java - Android 同一个方法调用了两次

ios - 解析 Facebook - clang : error: linker command failed with exit code 1 (use -v to see invocation)

android - 使用低于 compileSdkVersion 的支持库版本

python - 在 ubuntu 中安装 Google Cloud SDK 时遇到问题

java - 在 Eclipse AVD 中,我得到 "Unfortunately,Test1 has stopped working"

android - 使用 Gradle 的 Robolectric : Resources not found

android - 如何使 Picasso/Glide 与 Html.ImageGetter 一起缓存图像?

iOS Facebook 登录教程

php - 注销 WordPress 和 Facebook

android - TikTok SDK登录如何获取用户信息?