用户是不是需要登录 Facebook 才能通过 Facebook Messenger 分享开放图故事?

Posted

技术标签:

【中文标题】用户是不是需要登录 Facebook 才能通过 Facebook Messenger 分享开放图故事?【英文标题】:Does a user need to be logged in on Facebook to share an open-graph story through Facebook Messenger?用户是否需要登录 Facebook 才能通过 Facebook Messenger 分享开放图故事? 【发布时间】:2014-05-19 14:38:53 【问题描述】:

为了让用户能够通过新的 Facebook Messenger 功能(发送开放图消息)向开放图故事发送消息,用户是否需要在我的应用中登录 Facebook?

我说的是 Facebook 在他们的 f8 会议上展示的新功能(通过 Facebook Messenger 向朋友发送一个开放的图表故事)。

我很确定我的移动应用程序中的所有内容都已正确设置。但问题是其他测试人员(在我的 Facebook 应用程序中注册为测试人员的人)正确地接收了打开的图表故事,但是当点击打开的图表故事时,即使 Facebook Messenger 重定向到正确的应用程序(我的应用程序), FBAppCall 对象不包含任何 targetURL 信息,没有 &target_url=.... ...即使我的打开图形对象设置了正确的 URL。

这就是我在想的原因:用户是否还需要在某处发布故事的开放图(因此用户需要使用 Facebook 登录),以便 Facebook Messenger 能够获取对象的 URL之后?

似乎不应该是这样,因为通过 Messenger 打开这个新的分享功能应该只是为了消除分享故事时的摩擦。

【问题讨论】:

【参考方案1】:

用户是否需要登录 Facebook?

不,他没有。

用户是否需要在我的应用中登录 Facebook?

您必须拥有有效的客户端令牌,这意味着您的用户必须已授权您的应用。就一次。然后他可以从 Facebook 和/或您的应用程序中注销,并且您可以将令牌保留在您的数据库中并根据需要发出任意数量的请求,而不管用户在任何地方登录。

这意味着:用户从 facebook 注销后,您仍然可以保留客户端令牌,只要您愿意(好吧,它们确实会过期:查看https://developers.facebook.com/docs/facebook-login/access-tokens/ 了解更多信息),然后使用它使用用户授予您的应用的任何权限(阅读消息、发送消息、代表我发帖等)随意代表用户提出请求。

为了通过 facebook messenger 分享一个开放的图表故事,当然必须有一个故事发布在某个地方。

如果用户/应用 A 最初无权查看原始帖子,则进行帐户隐私设置可能会阻止用户/应用 A 看到其他人(用户/应用 C)分享的用户/应用 B 故事地点(例如,在使用“仅限朋友”隐私设置发帖时发生)

您能做的最好的事情:调试您的应用从 Facebook 获得的响应。每次发生异常情况时,Facebook 都会通知您。您确定没有收到任何错误/警告消息吗?

【讨论】:

感谢您的回答!所以,如果是这样的话,那是有道理的:我从不要求用户使用 Facebook 登录或要求对他的墙等的权利,因此我没有来自 FB 的令牌。但如果是这种情况,整个情况就非常违反直觉,因为我不明白为什么用户需要发布一个他只想与几个朋友分享的故事(从 Facebook Messenger 选择) 一个帖子就是一个帖子。隐私设置允许自定义的朋友列表与之共享,但它不会通过消息通知这些朋友(尽管它很可能会出现在他们的新闻源上)。您将消息用作同时多个通知的一种方式,并且消息将具有指向帖子或嵌入帖子的链接(我还没有使用此功能,所以我不确定它是哪个)。跨度> 无论如何,我很确定如果没有令牌,您将无法做任何事情:您需要一个会话才能发送请求(身份验证请求除外)并且您需要一个令牌(或有效的1 使用身份验证重定向回调代码)以产生会话。 顺便说一句:所有最近的 facebook SDK 都建立在他们的 Oauth 2.0 实现之上。 (您甚至可以构建自己的 SDK,因为它鼓励用于 Windows 8 应用程序,例如:developers.facebook.com/docs/facebook-login/…)如果您想了解有关 Oauth 2.0 的更多信息,请参阅规范文档:tools.ietf.org/html/rfc6749

以上是关于用户是不是需要登录 Facebook 才能通过 Facebook Messenger 分享开放图故事?的主要内容,如果未能解决你的问题,请参考以下文章

Facebook 用户通过 Facebook SDK - Android 登录后保持登录状态

如何在 Firebase Auth 中检查用户是不是通过 Facebook 登录 [重复]

ios - 一台设备上的多个 Facebook 帐户

Session会话与Cookie简单说明

通过 NestJs 框架通过 Passport Facebook 登录

通过 Facebook iOS Parse.com 登录用户