3

以下を使用して、アルバムのリストを取得できました。

final Facebook facebook = new FacebookTemplate(facebookAccessToken, appName);

final PagedList<Album> albumList = facebook.mediaOperations().getAlbums();


for (Album album : albumList) {
  if (album.getName().equalsIgnoreCase("Profile Pictures")) {
    PagingParameters pagingParameters = new PagingParameters(NO_OF_FB_PHOTOS, null, null, null);
    final PagedList<org.springframework.social.facebook.api.Photo> profilePhotos = 
                           facebook.mediaOperations().getPhotos(album.getId(), pagingParameters);

Facebook アカウントのようにアルバム リストに正しい数のアルバムが含まれていることと、アルバム ID が一致していることを確認しました。ただし、Profile Pictures アルバム内の profilePhotos の Photo オブジェクトには、null の画像とリンクが含まれています。PhotoオブジェクトのIDとcreatedDateしか取得できません....

アクセス トークンを取得するために、クライアントで user_photos 権限を取得しました。また、Facebook のグラフ エクスプローラーを使用して、この accessToken を使用してクエリを実行し、写真の URL を取得することができました。どうもありがとう

更新: 「新しい Facebook API v2.4 により、応答の送信方法が変更されました。/me が /me になるように、API が返すフィールドをリクエスト URL で指定する必要があります。 fields=email,name,etc..." ( Facebook グラフ API から、一部の Web サイトの名前と ID のみが返されます)

4

1 に答える 1

1

上記のコメントで述べたように、Facebook の API の v2.4 以降ではfields、リクエストのパラメーターでレスポンスに必要なフィールドを指定する必要があります。それ以外の場合、デフォルトで返されるフィールドはほとんどなく、通常は名前と id だけです。作成時間など

使用している SDK が独自のコードまたは例でそれを考慮していない場合は、?fields=X,Y,Zリクエスト フィールド x、y、z への呼び出しに手動で追加するだけでよいでしょう。

于 2015-12-11T00:49:24.270 に答える