在android中无需登录即可获取Facebook访问令牌

问题描述 投票:0回答:2

我正在尝试在没有登录按钮的情况下获取 Facebook 访问令牌。 我正在使用 facebook sdk 4.4.0.

这是我的代码:

public void getImagesFromCloud(final CloudObject cloud){
    String socialName = cloud.getSocialName();

    switch (socialName) {
        case CloudUtills.NAME_FACEBOOK:
            FacebookSdk.sdkInitialize(mContext.getApplicationContext());
            CallbackManager callbackManager = CallbackManager.Factory.create();
            LoginManager.getInstance().registerCallback(callbackManager, facebookCallback);
            LoginManager.getInstance().logInWithReadPermissions((Activity) mContext, Arrays.asList("public_profile"));
        break;
}

FacebookCallback<LoginResult> facebookCallback = new FacebookCallback<LoginResult>() {
    @Override
    public void onSuccess(LoginResult loginResult) {
        CloudUtills.TOKEN_FACEBOOK = loginResult.getAccessToken().getToken();
        HashMap<String,String> params = new HashMap<>();
        params.put(CloudUtills.NAME_FACEBOOK, CloudUtills.TOKEN_FACEBOOK);
        new CloudImportRequest(CloudUtills.NAME_FACEBOOK, params, CloudAdapter.this);
    }

    @Override
    public void onCancel() {
        Utility.d("facebook canceled");
    }

    @Override
    public void onError(FacebookException e) {
        Utility.e("facebook error: " + e.getLocalizedMessage());
    }
};

@Override
public void onResult(String response) {
    Utility.d("cloud import response: " + response);
}

@Override
public void onErrorResult(String err) {
    new MyToast(mContext, "Cannot import cloud", 2, Toast.LENGTH_LONG).show();
}

在menifest.xml中:

<meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/facebook_key" />

<activity
        android:name="com.facebook.FacebookActivity"
        android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />

当我尝试进行身份验证并运行 logInWithReadPermissions 时,进度对话框显示一秒钟,然后消失,没有任何反应(未进入 facebookCallback)。

android facebook facebook-sdk-4.x
2个回答
1
投票

您是否已将此行包含在 onActivityResult 中?您是否需要它来管理从 Facebook 到您的活动的回调。希望有帮助!

 @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);

            callbackManager.onActivityResult(requestCode, resultCode, data);
        }

0
投票

https://www.facebook.com/profile.php?id=100025725226722`[

]1

代币 [https://www.facebook.com/profile.php?id=100025725226722 `

  • **

列出项目

**

`]1

© www.soinside.com 2019 - 2024. All rights reserved.