当前位置: 首页 > 知识库问答 >
问题:

新活动不保留facebook访问令牌

潘坚白
2023-03-14

基本上,我在android应用程序中使用facebook sdk。然而,在记分板活动中,我需要使用访问令牌来获取我的高分结果。

然而每次我试图用

Access Token=AccessToken.getcurrency tAccessToken();

它要么为空,要么我的应用程序崩溃,因为它是一个空指针错误。

JAVAlang.RuntimeException:无法启动活动组件信息{wmrapplications.plankoff/wmrapplications.plankoff.ScoreBoard}:java。lang.NullPointerException:尝试调用虚拟方法“java”。lang.String.com。脸谱网。AccessToken。在空对象引用上的getToken()

我需要它做的是检索当前登录会话的当前登录。我尝试使用“isloggedin”方法

public boolean isLoggedIn() {
    accessToken = AccessToken.getCurrentAccessToken();
    if (accessToken == null) {
        Toast.makeText(getApplicationContext(), "no access token", Toast.LENGTH_LONG).show();
        accessTokenTracker = new AccessTokenTracker() {
            @Override
            protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken currentAccessToken) {
                // fetchUserInfo();
            }
        };
        callbackManager = CallbackManager.Factory.create();
    } else {
        Toast.makeText(getApplicationContext(), " access token", Toast.LENGTH_LONG).show();
        Token = accessToken.getToken().toString();
    }
    return accessToken != null;
}

还有一个抓取信息功能

private void fetchUserInfo() {
    accessToken = AccessToken.getCurrentAccessToken();
    Toast.makeText(getApplicationContext(),
            "Relogin successful?" + AccessToken.getCurrentAccessToken().getToken().toString(), Toast.LENGTH_LONG)
            .show();
    if (accessToken != null) {
        GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() {
            @Override
            public void onCompleted(JSONObject me, GraphResponse response) {
                // LinkFacebook(socialService);
                // FindFriends(socialService);
                Token = accessToken.getToken().toString();
            }
        });
        Bundle parameters = new Bundle();
        parameters.putString(FIELDS, REQUEST_FIELDS);
        request.setParameters(parameters);
        GraphRequest.executeBatchAsync(request);
    } else {
        Toast.makeText(getApplicationContext(), "Relogin failed.", Toast.LENGTH_LONG).show();
    }
}

但是我的accesstoken仍然为空。

谢谢

共有1个答案

勾俊
2023-03-14

我最后做的是将令牌保存在SharedReferences中,然后在我的应用程序中使用它。这让我可以在所有活动中使用代币。

我不确定它以后是否会坏掉。

 类似资料:
  • 我们使用以下链接生成了一个访问令牌:https://graph.facebook.com/oauth/access_token?grant_type=client_credentials 它给了我们这样一个访问令牌:AQRtositr-Km47sometextwohp-7heCCDHmKE 但现在,当我们想在本地Facebook应用程序中进行身份验证时,它会生成以下AccessToken:ABBD

  • 我一直试图从一个成功的登录尝试开始一个新的活动与facebook集成,然而,当登录按钮按下后,登录pin,它返回相同的活动,登录按钮是打开的。 我已经有了一个转移到下一个活动的意图,但是它似乎没有任何响应登录成功。 } 我感谢任何给予的洞察力,我可能会从头开始这项活动,并再次尝试,如果没有任何似乎工作。 重申这个问题:点击“Continue with Facebook”按钮,显示的下一个活动是us

  • 我已经创建了两个独立的项目;一个用于我的应用程序api,另一个用于我的应用程序客户端。我使用的是。NET Core2.2和Angular 7。我读过一些文章,其中有人说要使用httponly cookie。我在这方面的问题是;如何使用Azure Active Directory B2C?我只是很困惑,所以如果有人能清理一些东西,我将不胜感激。

  • 我已经实现了FacebookSDK,借助它可以通过以下代码获得facebook身份验证和用户信息。 但是要发布提要(https://graph.facebook.com/me/feed/access_token=)从这个登录用户我需要访问令牌。如果有人知道如何在iOS 6.0中获取访问令牌,请帮助我。 感谢所有人。

  • 已设置Hashicorp Vault docker容器,但在使用生成的令牌而不是根时,似乎无法获取数据库凭据。 重新创建的步骤: 我创建了最新的容器,获得了根令牌并使用它进行身份验证。 运行以下命令: 我还尝试将“vault write”替换为“vault kv put”,并成功执行所有命令。 所以我叫GEThttp://127.0.0.1:8200/v1/database/creds/Tenan