0

Facebook sdkからユーザー情報にアクセスしようとしていますが、このエラーが発生し続けます。

{"error":{"message":"Error validating access token: The session has been invalidated because the user has changed the password.","type":"OAuthException","code":190,"error_subcode":460}}

responseこれが、oncomplete関数のパラメーターのエラーを返す呼び出しです。

mAsyncRunner.request("me", new RequestListener() {
        @Override
        public void onComplete(String response, Object state) {
            Log.d("Profile", response);
            String json = response;    //<-- error in response
            try {

                JSONObject profile = new JSONObject(json);
                MainActivity.this.userid   = profile.getString("id");
                new GetUserProfilePic().execute();
                runOnUiThread(new Runnable() {

                    @Override
                    public void run() {
                        Toast.makeText(getApplicationContext(), "Name: " + MainActivity.this.userid, Toast.LENGTH_LONG).show();
                    }

                });

            } catch (JSONException e) {
                e.printStackTrace();
                Log.e("jsonexception",e.getMessage());
                facebook.extendAccessTokenIfNeeded(MainActivity.this, null);
                GetUserInfo();
            }
        }
        @Override
        public void onIOException(IOException e, Object state) {
        }

        @Override
        public void onFileNotFoundException(FileNotFoundException e,
                Object state) {
        }

        @Override
        public void onMalformedURLException(MalformedURLException e,
                Object state) {
        }

        @Override
        public void onFacebookError(FacebookError e, Object state) {
        }
});

時々正しい応答が返ってきます。これは、私が正しければアクセストークンの有効期限が原因だと思います。アクティビティfacebook.extendAccessTokenIfNeeded(this, null);のメソッドでこれを使用しましたが、アクセストークンを拡張する方法を教えてください。onResume

これを解決する方法は?

4

1 に答える 1

0

extendAccessTokenIfNeededメソッドとextendAccessTokenIfNeededメソッドはどちらも、ネイティブFacebookアプリをローカルにインストールする必要があります。

(SDKのv2とv3bのどちらを使用しているかはわかりませんが、ここに記載されていますhttps://developers.facebook.com/docs/reference/android/3.0/Facebook#extendAccessToken(Context,%20ServiceListener))

あなたが見ている振る舞いは...それはエミュレーターですか、それとも実際のデバイスですか?前者の場合、SDKのv3bからAPKとしてネイティブFacebookアプリをインストールできます。https ://developers.facebook.com/androidから入手できます。

于 2012-10-30T18:19:35.963 に答える