情况
我正在开发一个将在 iPhone/Android 应用程序中使用的网络工具。 在应用内,用户必须使用 FB 应用或常规后备登录 facebook。
我们发现应用程序和 webview 之间的 FB session 没有被延续。 (如果你在应用程序中登录了FB,你仍然需要在webview中登录FB)
为了解决这个问题,我们让 App 通过 POST 将访问 token 发送到 webview。
在 WebView 中,我使用图形 API 来获取用户的 FB ID。 该 ID 在 API 中使用,应用程序和 webview 站点使用该 API 共享数据。
到目前为止一切顺利。
问题
我们想在 webview 的某些部分使用共享对话框。 但是我们不想再次登录(我们也想为此使用访问 token )
(我不能对应用程序本身做任何更改,所以我只能使用现有的东西。 访问 token )
尝试
1) 我试图找出是否可以使用带有访问 token 的常规共享对话框。从文档来看它似乎不起作用。
2) 据我所知,使用访问 token “登录”到 FB 是行不通的。无法传递访问 token 。
3) 我无法使用 FB.ui 创建共享对话框,因为该函数不使用访问 token 。
4) 使用 URL 重定向方法也不起作用,因为您会看到一个登录对话框。 (因为据我所知我无法传递访问 token )
5) 我可以使用 fb.api() 和“publish_actions”权限直接发布到用户提要。使用 fb.api() 我可以将访问 token 传递给函数。但用户无法控制发送的内容。我担心这会激怒用户。
我可以为用户构建一个自定义对话框并发送他们在那里写的内容。如果找不到其他解决方案,这是最后的手段。
当我尝试在 Graph API Explorer 中测试此解决方案时,我的 FB 帐户指责我的应用程序发送垃圾邮件。所以我不确定这是一个有效的解决方案。
结论
只用一个Access Token似乎很难分享内容。 解决方案 5 可行,但我宁愿使用常规共享对话框。
我知道根据文档这似乎是不可能的,但 FB 并不是最擅长更新其文档的。所以我希望有人能给我一个明确的答案。
资源
如果我没有理解错的话,我只能分享 2 个链接,因为我没有足够的声誉。
最佳答案
你可以使用它。
https://www.facebook.com/dialog/share?
app_id=xxxxxxxxxx&display=popup
&href=http://google.com
&access_token=<user access token>
首先检查您的应用访问 token
graph.facebook.com/debug_token? input_token={token-to-inspect} &access_token={app-token-or-admin-token}
检查您的应用是否有权访问用户公开资料
graph.facebook.com/debug_token? 输入 token = &access_token=
关于facebook-graph-api - 我可以使用带有访问 token 的 FB 共享对话框吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28344834/