gpt4 book ai didi

javascript - 检查 Facebook 应用程序的权限

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

我正在尝试使用 facebook API 来获取在用户墙上发帖的权限。

  • 我征求他们的许可,如果他们点击“现在不”,我希望它返回到我的页面。
  • 如果他们同意,则会出现一个自定义弹出窗口 (facebookPopup)。

下面是如果他们点击“分享”按钮会发生什么

public CheckPermissions() {
var permsNeeded = ['publish_stream'];

// Function that checks needed user permissions
FB.api('/me/permissions', function (response) {
var permsArray = response.data[0];
var permsToPrompt = [];
for (var i in permsNeeded) {
if (permsArray[permsNeeded[i]] == null) {
permsToPrompt.push(permsNeeded[i]);
}
}
if (permsToPrompt.length > 0) {
promptForPerms(permsToPrompt);
}
else {
facebookPopup(response);
}
} );
// Re-prompt user for missing permissions
var promptForPerms = function (perms) {
FB.login(function (response) {
CheckPermissions();
}, { scope: perms.join(',') });
}
}

我遇到的问题是,如果他们单击“现在不”,它会不断重新提示他们,因为我正在调用 CheckPermissions() 并且它会命中 (permsToPrompt)。我只希望他们再次单击“共享”按钮时得到重新提示。

最佳答案

您可以使用以下内容:

module facebook {
var grantedPermissions: { [permission: string]: number };

function checkPermissions(callback?: Function): void {
FB.api("/me/permissions", function (response): void {
grantedPermissions = response.data[0];

if (callback) {
callback();
}
});
}

export function init(): void {
FB.getLoginStatus(function(response): void {
if (response.status === "conntected") {
checkPermissions();
}
});
}

export function hasPermission(permission: string): boolean {
return grantedPermissions[permission] == 1;
}

export function getPermission(permission: string, callback?: Function): void {
if (hasPermission(permission)) {
if (callback) {
callback();
}

return;
}

FB.login(function(response): void {
checkPermissions(function() {
if (callback && hasPermission(permission)) {
callback();
}
});
}, { scope: permission });
}
}

当您开始页面调用时:

facebook.init();

然后你可以这样使用它:

button.addEventListener("click", function(event: Event): void {
getPermission("publish_stream", fucntion() {
// do what ever you want here with the publish_stream permission granted
});
});

请记住,这段代码未经测试,我只是编写了它,并且它没有实现整个登录流程...

希望这有帮助。

关于javascript - 检查 Facebook 应用程序的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23408334/

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