3

情况

我正在开发一个将在 iPhone/Android 应用程序中使用的网络工具。在应用程序内,用户必须使用 FB 应用程序或常规后备登录 facebook。

我们发现应用程序和 webview 之间的 FB 会话没有被继承。(如果您在应用程序中登录FB,您仍然需要在webview中登录FB)

为了解决这个问题,我们让 App 通过 POST 将访问令牌发送到 webview。

在 web 视图中,我使用 Graph API 来获取用户的 FB ID。该 ID 用于应用程序和 webview 站点用于共享数据的 API。

到目前为止,一切都很好。

问题

我们想在 webview 的某些部分使用共享对话框。但是我们不想再次登录(我们也想为此使用访问令牌)

(我无法对应用程序本身进行任何更改,所以我坚持我所拥有的。访问令牌)

尝试

1)我试图找出是否可以使用带有访问令牌的常规共享对话框。它似乎不适用于文档。

2)据我所知,使用访问令牌“登录”到 FB 是行不通的。无法通过访问令牌。

3) 我无法使用 FB.ui 创建共享对话框,因为该功能不使用访问令牌。

4) 使用 URL 重定向方法也不起作用,因为您将获得一个登录对话框。(因为我无法通过我所知道的访问令牌)

5) 我可以使用 fb.api() 和“publish_actions”权限直接发布到用户提要。使用 fb.api() 我可以将访问令牌传递给函数。但是用户无法控制发送的内容。我担心这可能会激怒用户。

我可以为用户构建一个自定义对话框并发送他们在那里写的内容。如果没有找到其他解决方案,这是最后的手段。

当我尝试在 Graph API Explorer 中测试此解决方案时,我的 FB 帐户指责我的应用程序发送垃圾邮件。所以我不确定这是一个有效的解决方案。

结论

仅使用访问令牌共享内容似乎非常困难。解决方案 nr 5 有效,但我宁愿使用常规共享对话框。

我知道根据文档这似乎是不可能的,但 FB 并不是最擅长更新他们的文档。所以我希望有人能给我一个明确的答案。

资源

如果我理解正确,我只能分享 2 个链接,因为我没有足够的声誉。

https://developers.facebook.com/docs/plugins/share-button

https://developers.facebook.com/docs/javascript/reference/

4

1 回答 1

0

你可以用这个。

https://www.facebook.com/dialog/share?
app_id=xxxxxxxxxx&display=popup
&href=http://google.com
&access_token=<user access token>
  1. 首先检查您的应用访问令牌

    graph.facebook.com/debug_token?input_token={token-to-inspect} &access_token={app-token-or-admin-token}

  2. 检查您的应用程序是否有权访问用户公开资料

    graph.facebook.com/debug_token?input_token= &access_token=

于 2017-11-15T07:20:13.697 回答