gpt4 book ai didi

facebook - 如何在window.fbAsyncInit外调用FB.api

转载 作者:行者123 更新时间:2023-11-30 05:26:39 25 4
gpt4 key购买 nike

所以我已经初始化了 fb api

window.fbAsyncInit = function() {
FB.init({
appId : '351808841561163',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
oauth: true
});

我有一个单独的 js 文件,其中包含一个函数:

function example(){
FB.api(
'/me/[namespace]:visit',
'post',
{ channel: link},
function(response) {
if (!response || response.error) {
console.log(response.error);
} else {
console.log('Follow was success! Action ID: ' + response);
}
});
}

当我调用它时,我得到 FB is undefined。

当我将函数放在 window.fbAsyncInit 中时,它工作正常,但我需要在 window.fbAsyncInit 外部调用 FB。

有没有办法做到这一点?

最佳答案

只需将您的函数排队,然后在 FB 初始化后立即调用它。以下代码保证您的函数将以正确的顺序调用,并在 FB 完成初始化后立即调用

您在示例之前和 FB 初始化脚本之前包含的帮助脚本:

var FB; // to avoid error "undeclared variable", until FB got initialized
var myQueue = new Array();
function queueAdd(f){
if (FB == undefined)
myQueue.push(f);
else
f();
}

function processQueue(){
var f;
while(f = myQueue.shift())
f();
}

您的函数示例:

function example(){
FB.api(
'/me/[namespace]:visit',
'post',
{ channel: link},
function(response) {
if (!response || response.error) {
console.log(response.error);
} else {
console.log('Follow was success! Action ID: ' + response);
}
});
}

queueAdd(example); // will run immediately if FB initialized. Otherwise, wait for FB first

和 Facebook 部分:

window.fbAsyncInit = function() {
FB.init(blablabla);
processQueue();
}

关于facebook - 如何在window.fbAsyncInit外调用FB.api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12743356/

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