尝试获取我朋友的Facebook照片

时间:2019-05-12 15:55:03

标签: c++ facebook sdk cocos2d-iphone photo

几个星期以来,我在获取“我的朋友”的Facebook照片时遇到问题。我有一个以上的朋友,当我尝试获取所有照片时,我只能得到一张。当我请求第二个朋友的第二张照片时,我收到此回复“ 请求超时。”。它一直工作到几个月前。几个星期以来,它不再起作用了。

我确定问题不在我的代码中,因为我用于请求的URL正常。实际上,正如我之前所说,我没有更改代码中的任何内容,直到几个月前它才起作用...

这听起来像是API中的限制。有人可以帮助我吗?

for(....) //my friend list
{
  HttpRequest* requestFacebookPhoto = new HttpRequest();
  requestFacebookPhoto->setUrl(friendPhotoUrl); //I tested all URLs in Chrome and it works. The url is ok.
  requestFacebookPhoto->setRequestType(HttpRequest::Type::GET);
  requestFacebookPhoto->setResponseCallback([](HttpClient* client, HttpResponse* response) {

    if (!response or response->getResponseCode() != 200) {

        //response code is -1, so, when i debug it, it enters to this if

        return;
    }

    //more code below..

  }); 

  HttpClient::getInstance()->send(requestFacebookPhoto);
  requestFacebookPhoto->release();
}

我希望像以前一样,能获得朋友的所有照片。我再说一遍,我什么都没改变。使用相同的代码可以正常生产。我正在使用cocos2d http库在C ++中进行开发。

也许“超时”是因为我在短时间内要很多照片吗?我只有五个或六个朋友..所以我要在很短的时间内,在“ for”内索取五六个照片。但这在...之前就起作用了。

1 个答案:

答案 0 :(得分:1)

您无法获取朋友的照片,只能获取当前授权用户的照片。它可能在几年前就已经起作用了,但是出于隐私方面的考虑,Facebook使用Graph API v2.0删除了对朋友数据的访问。

不允许抓取,因此,如果使用Graph API无法进行操作,请不要这样做。其他用户的照片/数据(无论是否是朋友)与您无关,如果他们没有明确授权您的应用访问它们。

对于授权用户,只需将/ user-id / photos与用户令牌一起使用。而且,如果这不适用于您的用户令牌,则当朋友进入应用程序时,您可能必须使用自己的令牌存储/缓存照片。