0

目前,在点击事件上调用以下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已经myobjectmyaction隐藏了。

我真正的问题是用户故事没有得到 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 。

4

1 回答 1

0

如果您使用为您的应用创建的测试用户,或使用您的开发者帐户,您应该能够在故事获得批准之前看到已发布的故事。

您正在进行的 API 调用也需要稍微更新。不要在 FB.api 中使用用户 ID,只需使用/me/mynamespace:myaction. access_token也不需要包括在内,因为如果用户登录,它会由调用自动传递。

最后,您的对象实际上是否被调用myobject?名称必须与您为故事输入的设置相匹配,例如“文章”或其他有效类型。

为了帮助调试问题,请先尝试一个简单的 API 调用(例如 remove messageand image),然后看看会发生什么。然后将其他参数一一添加,看看是哪一个导致了问题。


编辑

要获得批准的操作,您需要确保用户以一种或另一种形式输入自定义消息 - 通常通过页面上的文本输入。如果您共享用户未输入的预定义文本,Facebook 将不会批准它。

如果您想分享预先写好的信息,最好以另一种方式分享,比如故事本身的标题。

于 2013-10-30T20:05:36.307 回答