gpt4 book ai didi

javascript - Facebook Graph API 调用不再有效(因为 Facebook Cookie)

转载 作者:行者123 更新时间:2023-11-29 10:47:52 26 4
gpt4 key购买 nike

我一直在使用 facebook grap 从公共(public)“页面”拉取相册并显示照片,但今天它停止工作(不仅在我的 PC 上,它已经被其他人验证)

我一直在没有 token 和任何 SDK 的情况下访问图形 API,只是构建 graph.facebook.com 链接并使用返回的 json。

起初我以为问题只发生在 Chrome 上,但现在我不太确定了。我已经确认欺骗用户代理没有效果,而且我最近发现删除 Facebook.com cookie 可以解决问题

现在,我不能强行删除其他人的 cookie,所以我希望得到另一个修复,或者至少得到一个解释。

图形调用看起来像 https://graph.facebook.com/{{albumID}}

这是一个例子: https://graph.facebook.com/203416696378870

收到错误

"error": {
"message": "An access token is required to request this resource.",
"type": "OAuthException",
"code": 104
}

没有 facebook.com cookie,我得到了预期的输出。

"id": "203416696378870",
"from": {
"id": "186646504722556",
"category": "Musician/band",
...

删除前的 Facebook Cookie

facebook.com cookies

我仍然不明白为什么 Facebook cookie 会突然破坏我的代码。

我在 Facebook 的平台更新或 Chrome 版本中找不到任何可能解释此行为的记录更改。

当然,我不能强行删除所有使用我的代码的网站的用户的 cookie,我对这显然使它变得如此脆弱感到不满意。

有没有人对这个问题有任何额外的见解,以及 facebook.com cookie 中具体是什么扰乱了图形 API 调用?

有什么办法可以防止这种情况发生吗?

最佳答案

Facebook 要求访问 token 很奇怪,但是如果您只需要相册中的图片,这对我有用:

https://graph.facebook.com/YOUR_ALBUM_ID/photos?fields=picture&limit=500

为了使其正常工作,fields=picture 语句是必需的。

你可能会发现这很有用

if (empty($_GET['album'])) {

//get all albums of page
$graph_url = "https://graph.facebook.com/PressPlayPrague/albums?fields=id,link,name,cover_photo&limit=500";
$albums = json_decode(file_get_contents($graph_url));
$counted = sizeof ($albums->data); // get the number of albums for later use

//output all albums of given page
for($c=0; $c<$counted; $c++){
echo ("<div class='wrapper' <a href='?album=".$albums->data[$c]->id."'><div class='stack'><div style='width:180px; height:120px; display:inline-block; background-image:url(https://graph.facebook.com/".$albums->data[$c]->id."/picture?width=300&height=200); background-repeat:no-repeat;'> </div></div><div class='caption'>".$albums->data[$c]->name."</div></a></div>");
};

}else{

//get the album pictures replace the $_GET[album] with specific ID and remove the if clause to get only one album
$pic_url = "https://graph.facebook.com/".$_GET[album]."/photos?fields=picture&limit=500";
$pictures = json_decode(file_get_contents($pic_url));
$countpic= sizeof ($pictures->data); // get the number of pics for later use
for($p=0; $p<$countpic; $p++){
echo ("<img style='width:250px; max-height:167px;'src='https://graph.facebook.com/".$pictures->data[$p]->id."/picture' alt='".$pictures->data[$p]->id."'>");

};
}
?>

关于javascript - Facebook Graph API 调用不再有效(因为 Facebook Cookie),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16063370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com