Facebook 登录 JavaScript sdk 不适用于publish_actions范围
Facebook login javascript sdk not working with publish_actions scope
我正在使用本地主机中的按钮图形 api 开发 Web 应用程序,但它无法正常工作。当用户单击喜欢按钮时,如果fb登录状态为"已连接",则它调用图形api创建喜欢的对象以使喜欢用户喜欢url。问题:用户状态为"已连接",但图形 api 在调用创建对象时始终响应"需要扩展权限:publish_actions"(如 url)。
这是我的代码:
window.fbAsyncInit = function() {
FB.init({
appId: MY_APP_ID,
status: true,
cookie: true,
xfbml: true
});
};
(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/vi_VN/all.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
/////////////////////////
// Login
////////////////////////
function fbLogin() {
FB.login(function(response) {
if (response.authResponse) {
FB.api('/me', function(response) {
//something
});
}
},{scope: 'publish_actions,publish_stream'});
}
/////////////////////////
// btnLike heart click
////////////////////////
jQuery('.hit').click(function() {
var current = jQuery(this);
var postId = current.attr('id');
var url = current.parent().attr('data-href');
var class_string = current.attr('class');
var class_array = class_string.split(' ');
if (class_array.indexOf("liked") != -1) { // found : liked
} else { // not found : not liked
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
FB.api('me/og.likes', 'post', {
/*test*/
object : getTestPermalink(url),
}, function(res) {
if (res.id) { //hit like successful
jQuery.post(
MyAjax.ajaxurl,
{ action: 'set_post_likes', postId: postId },
function(result) {
current.addClass('liked');
current.parent().children('.count').html(result.split('-')[0]);
}
);
}
});
} else {
fbLogin();
}
});
}
});
有人可以帮助我吗?对不起,我的英语不好..
-
publish_stream
被弃用(多年来?),你只需要publish_actions。 - 您正在异步回调函数中调用
FB.login
。您必须在用户交互(鼠标单击)上直接调用它,而不是在FB.getLoginStatus
的回调中调用它。
话虽如此,如果您不尝试使用应用程序的管理员、开发人员或测试人员的用户,通常会弹出权限错误。 publish_actions
需求确实在任何其他用户授权之前得到Facebook的批准。查看登录评论:https://developers.facebook.com/docs/apps/review/login
相关文章:
- 服务器上的 Meteor.publish 不会在客户端上显示新文档
- Alt flux action:_this.actions未定义,即使调用了this.generateActions
- 使用 jQuery 在 MVC3 中调用 Actions 时获取 404
- Facebook Flex 和 Actions 的反馈
- this.userId 在 Meteor.publish 中返回未定义
- react redux architecting table actions and reducers
- jQuery actions(一般)不起作用 -Dreamweaver
- browser.actions() without a perform()
- EmberJS actions - 当包装在“actions”中时,从另一个操作调用一个操作
- 即使在将操作处理程序放在“actions”对象中后,我仍然在 Emberjs 中不断收到弃用消息
- 如何使用“”在量角器中使用browser.actions().sendKeys"象征
- Meteor:Publish函数返回整个集合,而不是一个对象
- 网络驱动程序-actions.dragandrop在w3schools页面中不起作用
- ES6的箭头函数在Meteor.publish中改变了它的作用域
- Dojo's publish/subscribe——如何订阅多个主题
- 使用带有publish DSN的外部API
- 将表单onSubmit委托给Flux Actions的集中函数
- 使用javascript vs actions vs webdriver点击一个元素
- redux-actions Typescript声明一个动作
- Javascript Mouseover and mouseout actions