首页 > 解决方案 > 试图获取我朋友的 Facebook 照片

问题描述

几个星期以来,我在获取“我的朋友”的 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”内的“短”时间内请求五六张照片。但它之前工作...

标签: c++facebooksdkcocos2d-iphonephoto

解决方案


您无法获取朋友的照片,您只能获取当前授权用户的照片。它可能在几年前就奏效了,但出于隐私原因,Facebook 使用 v2.0 的 Graph API 删除了对朋友数据的访问。

不允许抓取,所以如果 Graph API 没有办法,请不要这样做。其他用户(无论是否为朋友)的照片/数据与您无关,如果他们没有特别授权您的应用访问它们。

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


推荐阅读