几个星期以来,我在获取“我的朋友”的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”内索取五六个照片。但这在...之前就起作用了。
答案 0 :(得分:1)
您无法获取朋友的照片,只能获取当前授权用户的照片。它可能在几年前就已经起作用了,但是出于隐私方面的考虑,Facebook使用Graph API v2.0删除了对朋友数据的访问。
不允许抓取,因此,如果使用Graph API无法进行操作,请不要这样做。其他用户的照片/数据(无论是否是朋友)与您无关,如果他们没有明确授权您的应用访问它们。
对于授权用户,只需将/ user-id / photos与用户令牌一起使用。而且,如果这不适用于您的用户令牌,则当朋友进入应用程序时,您可能必须使用自己的令牌存储/缓存照片。