6

この正確なコードと、ある程度機能する他のコードを使用しましたが、次のエラーが引き続き発生します。

{"error":{"type":"OAuthException","message":"An active access token must be used to query information about the current user."}}

コードは次のとおりです: 私は戻ってきた access_token を使用し、それをブラウザーにプラグインすることに対して検証しましたが、うまく機能します。しかし、このコードは、返されたアクセストークンを使用していないか、設定していないようです。FB.setAccessToken() メソッドと params.putString("access_token", MY_ACCESS_TOKEN) も試しました。

Web サイトの URL のアクセス トークンを変更する必要がなかったので、URL のようにエンコードするなど、access_token に特別なことをする必要はないと思いますか?

ご協力いただきありがとうございます。私は何時間も答えをネットで探しましたが、何もないようです。

Bundle params = new Bundle();

params.putString("message", "Test");
params.putString("name", "American Virgin");
params.putString("link", "http://bit.ly/12345");
params.putString("description", "A Freshman College Girl on a scholarship from an ...");
params.putString("picture", "http://xxx/MOV1026.jpg");

mAsyncRunner.request("me/feed", params, "POST", new TestRequestListener());
4

4 に答える 4

4

以下のコードを含めようとしましたか?

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

ドキュメントによると、これを含める必要があります。そうしないと、認証が正しく機能せず、発生したエラーが発生する可能性があります。私は同じ問題を抱えていましたが、これが欠けていることに気付きました。

于 2011-05-10T04:28:13.937 に答える
2

今では正常に動作します。コードをコメントに入れました。

 public void authorize(Activity activity, String[] permissions,
        int activityCode, final DialogListener listener) {

    boolean singleSignOnStarted = false;

    mAuthDialogListener = listener;

    // Prefer single sign-on, where available.
    //if (activityCode >= 0) {
    //      singleSignOnStarted = startSingleSignOn(activity, mAppId,
    //             permissions, activityCode);
    //  }
    // Otherwise fall back to traditional dialog.
    if (!singleSignOnStarted) {
        startDialogAuth(activity, permissions);
    }
} 
于 2012-03-15T07:06:49.357 に答える
1

受け取るアクセス トークンは URL デコードする必要があります。
と使っURLDecoder.decode()MultiPartEntity(HttpMultipartMode.STRICT);

于 2011-02-28T22:11:32.353 に答える
0

別の原因でこのエラー メッセージが表示されました。AsyncFacebookRunner は、Facebook オブジェクトへの参照を保持するのではなく、渡された時点で Facebook オブジェクトから値を取得するようです。したがって、次のようなものは機能しません。

    

    Facebook fb = new Facebook("appid");
    AsyncFacebookRunner runner = new AsyncFacebookRunner(fb);
    fb.setAccessToken(access_token);
    fb.setAccessExpires(expires);
    runner.request("me", new FbRequestListener());

しかし、このようなものはうまくいきます:

    

    Facebook fb = new Facebook("appid");
    fb.setAccessToken(access_token);
    fb.setAccessExpires(expires);
    AsyncFacebookRunner runner = new AsyncFacebookRunner(fb);
    runner.request("me", new FbRequestListener());

于 2012-08-04T16:44:39.820 に答える