假设我无法通过图形 api 获取全局用户 ID,如何使用应用程序打开 facebook url

Posted

技术标签:

【中文标题】假设我无法通过图形 api 获取全局用户 ID,如何使用应用程序打开 facebook url【英文标题】:How do I open facebook url with app assuming that I can't get global userId via graph api 【发布时间】:2018-12-08 03:56:36 【问题描述】:

我正在尝试获得访问用户公开个人资料的权限,以便向使用应用程序的其他人提供此人个人资料的链接。

在 api 响应中,我们有一个“链接”,但它是一个 https://facebook.com/... 链接,而不是像 fb://profile/<id> 这样的意图链接

那么如何在没有全局用户 ID 和用户名的情况下创建此链接?

我也尝试使用fb://facewebmodal/f?href=<link>,但它会将我重定向到我自己的 Facebook 主页(供稿)

谢谢!

【问题讨论】:

请参考以下链接:- medium.com/@shrawan25.sharma/… @Shrawan 谢谢。但我的观点是其他的。有两件事困扰着我: 1. facebook 给你的公共 url 过期了。在我的应用程序中,我希望用户尽可能多地交换他们的 Facebook 个人资料。有了这个链接是不可能的。 2. facebook给你的public url不能在app(android/ios)中打开,只能在浏览器中打开。对于用户体验来说,这太糟糕了......如果他们已经在应用程序中登录,没有人想登录浏览器但我明白你的意思,这很清楚 【参考方案1】:

Dhiogo 的 anwser 不再工作。当用户在您的应用程序中进行身份验证时,Facebook 的 API 会检索 user_id。所以你所要做的就是像这样使用这个 user_id:

fb://facewebmodal/f?href=https://www.facebook.com/profile.php&user_id=[user_id]

【讨论】:

酷!有效!这个解决方案的唯一问题是这个 user_id 是有范围的并且有一些限制(过期)。但根据您的应用,这是一个很好的解决方案。【参考方案2】:

这是 Facebook 未修复的已关闭错误:https://developers.facebook.com/bugs/332195860270199

但我可以找到解决办法!!!您所要做的就是获取 facebook graph api 生成的范围链接(链接权限),然后将 https://facebook.com/app_scoped_user_id/ 替换为 fb://profile/?app_scoped_user_id/,将链接的其余部分保持原样。

希望对你有帮助。

【讨论】:

嘿,我为这个问题苦苦挣扎了几个月,你的回答对我不起作用。你找到其他解决方案了吗?我已授予user_link 并且可以获得用户链接湾字段“链接”,但是我收到此错误message。但奇怪的是,如果我试图打开其页面的用户与我有共同的朋友,它就会起作用。

以上是关于假设我无法通过图形 api 获取全局用户 ID,如何使用应用程序打开 facebook url的主要内容,如果未能解决你的问题,请参考以下文章

在 Asp.net web api 中无法通过 id 查找用户

我无法通过 instagram API 获取 instagram 用户的媒体详细信息

如何通过 facebook graph api 获取***故事讲述者用户 ID

通过图形 api 获取过去的事件

Facebook 图形 API 仅返回某些网站的名称和 ID

O365通过图形api以其他用户身份发送