gpt4 book ai didi

javascript - Facebook 发帖请求有时能让我看到帖子,有时却不能(很奇怪)

转载 作者:行者123 更新时间:2023-12-03 03:44:57 25 4
gpt4 key购买 nike

我正在使用 javascript sdk,并且正在尝试从 Facebook 帐户获取公共(public)帖子。这是我用于设置 ajax 和获取访问 token 的代码(我在请求中使用我的应用程序 key ,因为该程序仅在我的计算机上运行,​​并且没有客户端暴露给它)。

<head>
<title>Hopfully Facebook</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">//connect to ajax</script>
</head>
<body>
<script>
var token;
$.ajax({url: "https://graph.facebook.com/oauth/access_token?\client_id=APPID&client_secret=APPSECRET&grant_type=client_credentials",
success: function(result){
token = result.access_token; //in this var the access_token is stored
}); // end of the access_token request
</script>

这是javascript sdk的设置和第一篇文章消息的请求。

<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'APPID',
xfbml : true,
version : 'v2.9'
}); //setting up the javascript sdk

var firstPostId;

FB.api(
('/AviBitterOfficial/posts?access_token='+token),
'GET',
{ "limit" : "1"},
function(response) {
console.log(response);
firstPostId = JSON.stringify(response.data[0].id);
firstPostId = firstPostId.substring(1, firstPostId.length -1);

FB.api( // the second call is in the first call's call back in order to bypass the async problem
('/'+ firstPostId+'?access_token='+token), // that the second call has initialized before the first call back
'GET',
{"fields":"message"},
function(response) {
alert(response.message);
}
);
}
);

};

(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>

每次我运行该程序时,它都会生成相同的 key ,但它的问题有点奇怪。当我使用 token 进行 api 调用以获取帖子的文本时,它有时会进行调用并给我文本,但有时它会给我这个错误“无效的 OAuth 访问 token ”。代码 109。这很奇怪,因为无论是在 api 调用成功的时候还是在它给我错误的时候, token 都是相同的,其他一切也都是相同的。有人有什么建议吗?

最佳答案

我想有时 AJAX 调用获取 token 比加载 JS SDK 更快,您需要按顺序执行这些操作。现在您可以同时异步执行此操作。

我不确定你为什么要进行 AJAX 调用(以及为什么你使用 jQuery 进行简单的 AJAX 调用,但那是另一个故事),如果你想获得 APP token ,你可以只使用 App ID和带有管道符号的 App Secret:App-ID|App-Secret - 当然,您应该只在服务器端执行此操作。但无论如何,您都应该将大部分代码移至服务器,以便在大量用户访问您的页面时包含一些缓存。

关于javascript - Facebook 发帖请求有时能让我看到帖子,有时却不能(很奇怪),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45439093/

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