3

私は Facebook Android SDK を使用してユーザーの Facebook アルバムにアクセスし、インターンは写真を取得しています。しかし、私が行うと、"https://graph.facebook.com/"+wallAlbumID+"/photos?access_token="+facebook.getAccessToken()空白のデータが返されます。{ "data": [] }

Facebookオブジェクトの作成中に許可を与える必要があることをstackoverflowの質問Graph API for Photoで読みました。user_photosその方法がわかりません。多くのフォーラムを読み、SOF も確認しましたが、解決策が見つかりませんでした。

これは私がfacebookオブジェクトを作成する方法です

facebook = new Facebook(APP_ID);

誰でもこれで私を助けてくれませんか。

4

2 に答える 2

2

Facebook SDK 3.0 以降を使用する必要があります。また、FB サイトの開発者設定でOAuth クライアント ログイン フローを有効にします。次に、次のコードを使用できます。

  1. まず、ユーザーをアプリ内の FB にログインして Session オブジェクトを取得し、まだ許可されていない場合は user_photos のアクセス許可を要求します。

    // start Facebook Login
    Session.openActiveSession(this, true, new Session.StatusCallback() {
    
        // callback when session changes state
        @Override
        public void call(Session session, SessionState state, Exception exception) {
            if (session.isOpened()) {
                // check for permission to see user photos
                if (!hasPhotoPermissions())
                    session.requestNewPublishPermissions(new Session.NewPermissionsRequest(MyActivity.this, "user_photos"));
    
                else {
                    // photos permission granted, fetch user's albums
                    fetchAlbumsFromFB(session);
                }
            }
        }
    });
    
  2. hasPhotoPermissions ()メソッドは次のようになります。

    private boolean hasPhotoPermissions() {
        Session session = Session.getActiveSession();
        return session.getPermissions().contains("user_photos");
    }
    
  3. その後、アプリは承認のために写真のアクセス許可画面をユーザーに提示します。

于 2014-01-13T19:21:10.937 に答える
2

ArrayListアクセスしたい権限のを作成する必要があります。たとえば、私がやったとき、変数を宣言するとき。

private static final String[] PERMISSIONS = { "user_photos" };

次に、ユーザーログイン領域を実装する場合:

if (!facebook.isSessionValid()) {
    facebook.authorize(this, PERMISSIONS, new LoginDialogListener());
}

お役に立てれば!

于 2013-01-18T22:59:53.403 に答える