-2

私のアプリケーションでは、Facebook でのログインを使用しています。ユーザーがボタンをクリックすると、Facebook のログイン画面が表示されます。ユーザーが資格情報を入力すると、ユーザー ID を取得したいと思います。ここにlogin()コードを貼り付けています。変更内容を教えてください。ユーザーIDを取得するために行う必要がありますか?

private void loginToFacebook() {
    mPrefs = getPreferences(MODE_PRIVATE);
    String access_token = mPrefs.getString("access_token", null);
    long expires = mPrefs.getLong("access_expires", 0);

    if (access_token != null) {
        facebook.setAccessToken(access_token);
    }

    if (expires != 0) {
        facebook.setAccessExpires(expires);
    }

    if (!facebook.isSessionValid()) {
        facebook.authorize(this,
                new String[] { "email", "publish_stream" },
                new DialogListener() {

            @Override
                    public void onCancel() {
                        // Function to handle cancel event
                    }

                    @Override
                    public void onComplete(Bundle values) {
                        // Function to handle complete event
                        // Edit Preferences and update facebook acess_token
                        SharedPreferences.Editor editor = mPrefs.edit();
                        editor.putString("access_token",
                                facebook.getAccessToken());
                        editor.putLong("access_expires",
                                facebook.getAccessExpires());

                        try {
                            editor.putString("access_expires",
                                    facebook.request("me"));

                            try {
                                JSONObject json = Util.parseJson(facebook
                                        .request("me", values));
                                String userId = json.getString("id");

                            } catch (FacebookError e) {
                                e.printStackTrace();
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }

                            Log.i(TAG, facebook.request("me"));
                        } catch (MalformedURLException e) {
                            e.printStackTrace();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }

                        editor.commit();
                    }

                    @Override
                    public void onError(DialogError error) {
                        // Function to handle error
                        Log.wtf(TAG, error);
                    }

                    @Override
                    public void onFacebookError(FacebookError fberror) {
                        // Function to handle Facebook errors
                        Log.wtf(TAG, fberror);
                    }
                });
    }
}
4

1 に答える 1

1

現在のユーザーのユーザー情報を取得するための API 呼び出しがあり、これには ID が含まれます。

https://graph.facebook.com/me

次のように呼び出すことで、その URL にアクセスできます。

facebook.request("me")

認証後。

json ユーザー オブジェクトを返します。これを解析して ID を取得できます。

https://developers.facebook.com/docs/reference/api/user/

于 2012-09-23T08:20:28.303 に答える