Facebook graph api 如何使用FB.ui发布用户故事?

Facebook graph api 如何使用FB.ui发布用户故事?,facebook-graph-api,facebook-javascript-sdk,Facebook Graph Api,Facebook Javascript Sdk,目前,点击事件会调用下面的FB.api函数,并在用户的时间线上发布用户故事(FB应用程序目前处于沙盒模式,用户故事仍在等待审核): 我认为我需要做的是显示一个模式对话框,例如在调用FB.ui时,给用户一个机会添加用户消息,然后将用户故事与用户消息(如果有)一起发布 我是否需要创建自己的自定义模式对话框,或者是否可以通过某种方式使用FB.ui 注意:上面的API调用在我的测试中运行良好。诚然,在上述代码示例中,诸如mynamespace、myobject和myaction之类的变量已被隐藏 我真正

目前,点击事件会调用下面的
FB.api
函数,并在用户的时间线上发布用户故事(FB应用程序目前处于沙盒模式,用户故事仍在等待审核):

我认为我需要做的是显示一个模式对话框,例如在调用
FB.ui
时,给用户一个机会添加用户消息,然后将用户故事与用户消息(如果有)一起发布

我是否需要创建自己的自定义模式对话框,或者是否可以通过某种方式使用
FB.ui

注意:上面的API调用在我的测试中运行良好。诚然,在上述代码示例中,诸如
mynamespace
myobject
myaction
之类的变量已被隐藏

我真正的问题是用户故事没有得到Facebook的批准,因为我可能需要“让用户退出应用程序的正常流程”,以便在用户故事中添加额外的可选内容。我想我需要一个策略来解决这个问题,而不是一个特定的代码示例答案

以下是我从Facebook得到的最新反馈:

您的行为不符合平台政策第IV.2节:

用户消息字段中的文字必须由用户手动书写 应用程序无法预先填充,即使用户可以编辑或 删除这些词。了解有关用户消息的详细信息:

明确发布共享内容对于用户来说是可选的。A. 当用户共享某个内容时,共享控制需要在线 而且它不能在单独的设置区域中。内容应该有一个 用户生成的组件或用户需要从 自然流的应用程序,以决定发布的故事回来 到Facebook。您当前的操作集成不应标记为 “显式共享”。了解有关显式共享内容的更多信息:


如果您使用为您的应用程序创建的测试用户,或使用您的开发人员帐户,您应该能够在批准之前查看发布的故事

您正在进行的API调用也需要稍微更新。不要在FB.api中使用用户ID,只需使用
/me/mynamespace:myaction
access\u令牌
也不需要包括在内,因为只要用户登录,它就会自动通过呼叫传递

最后,您的对象是否实际被称为
myobject
?名称必须与您为报道输入的设置相匹配,例如“article”或其他有效类型

要帮助调试问题,请首先尝试一个简单的API调用(例如,删除
消息
图像
),然后查看发生了什么。然后逐个添加其他参数,以查看是哪个参数导致了问题


编辑

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


如果你想分享一条事先写好的信息,最好用另一种方式分享,比如在故事中添加标题。

我更新了我的问题。我对API调用没有任何问题。我在满足“用户消息”和“显式共享”的要求方面遇到了问题。很酷,我认为这种方法将帮助我获得用户消息字段的批准。我还需要做些什么(如果有的话)来获得明确共享的批准?为了帮助获得批准,请向测试用户帐户提供Facebook登录详细信息,并在说明中尽可能多地包含详细信息。包括尽可能多的截图。
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.");
     }
   }
 );