目前,在点击事件上调用以下FB.api
函数并在用户的时间轴上发布用户故事(FB 应用程序目前处于沙盒模式,用户故事仍在等待审核):
FB.api( // creating the user story
'/userid/mynamespace:myaction',
'post',
{
myobject: fbObjectId, // retrieved in an earlier FB.api call
access_token: accessToken, // retrieved in an earlier FB.getLoginStatus call
message: customTextFromUser, // prefilled by my app (FB doesn't approve of this)
image: ImageURL, // prefilled by my app (FB is OK with this I think)
'fb:explicitly_shared': true // requires that I take the user out of the normal flow of the app which is why I want to show a modal first
},
function(response) {
// handle the response
console.log(response);
if (response.id) {
alert("Success! The user story has been shared on Facebook!");
} else {
alert("Woops! Something went wrong sharing the user story on Facebook. Please try again.");
}
}
);
我认为我需要做的是显示一个模式对话框,例如在何时FB.ui
调用以让用户有机会添加用户消息,然后将用户故事与用户消息(如果有)一起发布。
我是否需要创建自己的自定义模式对话框,或者我可以FB.ui
以某种方式使用来实现这一点?
注意:上面的 API 调用在我的测试中运行良好。当然,在上面的代码示例中,诸如 、 和 之类的变量mynamespace
已经myobject
被myaction
隐藏了。
我真正的问题是用户故事没有得到 Facebook 的批准,因为我应该“让用户脱离应用程序的正常流程”,以便通过额外的可选User Message显式共享用户故事。我想我需要一个策略来解决这个问题,而不是一个特定的代码示例答案。
以下是我从 Facebook 获得的最新反馈:
您的行为不符合平台政策第 IV.2 节: https ://developers.facebook.com/policy/ 。
用户消息字段中的单词必须由用户手动编写,并且不能由应用程序预先填写,即使用户可以编辑或删除单词。了解有关用户消息的更多信息: https ://developers.facebook.com/docs/submission-process/opengraph/guidelines/action-properties/#usermessages 。
发布明确共享的内容对于用户来说是可选的。每当用户共享某些内容并且它不能位于单独的设置区域中时,共享控件都需要内联。内容应该有一个用户生成的组件,或者用户需要脱离应用程序的自然流程,才能决定将故事发布回 Facebook。您当前的操作集成不应标记为“明确共享”。了解有关明确共享内容的更多信息: https ://developers.facebook.com/docs/submission-process/opengraph/guidelines/action-properties/#explicitlyshared 。