有没有一种方法来确定一个网站的网址是否会导致通过Facebook PHP SDK档次或页面?

问题描述 投票:0回答:1

我的网站的用户可以添加Facebook的fanpages和配置文件的网站。我试图想出一个办法,以确定加入一个URL是否导致Facebook的个人资料或Facebook的粉丝专页。我有Facebook的PHP-SDK版本5的网站上安装了,我也有我自己的空间有效的访问令牌。

有没有办法找出任何给定的Facebook网址是否会导致个人资料或粉丝专页,而不必和访问令牌要么他们?

php facebook facebook-php-sdk
1个回答
0
投票

有没有办法找出任何给定的Facebook网址是否会导致个人资料或粉丝专页,而不必和访问令牌要么他们?

没有官方的一个。

您仍然可以尝试做一个猜测,如果你有一个包含用户名(用户或页)一个配置文件URL。

试图访问你必须这样没有访问权限的用户配置文件,目前仍然导致错误信息,“(#803)无法通过自己的用户名(XYZ)查询用户。”脸谱后,他们取消了username领域推出此错误消息从用户对象。

如果是网页,而是和你又没有任何凭证,专门授予访问权限,那么你应该得到的错误“(#10)要使用‘页面公共内容访问’,你这个端点的使用必须经过审核并通过Facebook的批准。 [...]”(假设你的应用程序不具备此功能审查和批准;如果有,你应该能够使用这一要求阅读基本公共页面的数据,所以你可以从中得出结论的。)

这将是对于目前公众和没有访问限制的网页;如果不是的话,你应该得到的消息,“(#10)对象不存在,无法加载由于缺少审查的功能‘页面公共内容访问’,或者不支持此操作。 [...]”

但也有可能是其他情况。并不是每一个用户都有一个用户名的个人资料设置 - 如果你拿到的只是一个数字用户ID,你会得到“不支持GET请求。 ID为“XYZ”对象不存在,无法加载由于缺少权限,或者不支持此操作。”但该消息不是特定于用户配置文件,你可能会得到它对于其他对象,你根本就无法访问为好。

而最重要的是,Facebook的可能或许更改此,如果他们觉得这暴露了比他们舒服的更多信息。他们可能会切换到涵盖所有这些情况在某些时候更通用的错误信息,或类似的东西。

除非你绝对要确保你的应用程序知道什么是用户配置文件,什么是一个网页,我会建议不要尝试这个 - 宁愿相信你的用户,他们将付一点意向,如果结果对他们很重要。


编辑:还有一两件事,可能是 - 部分 - 使用,是语法,以获取有关“外部”开放图谱对象的信息,通过使用?ids=…语法指定的URL。一种用于?ids=https://www.facebook.com/zuck,https://www.facebook.com/facebook请求目前产生以下结果,

{
  "https://www.facebook.com/facebook": {
    "name": "Facebook",
    "id": "20531316728"
  },
  "https://www.facebook.com/zuck": {
    "id": "https://www.facebook.com/zuck"
  }
}

正如你所看到的,第一个,这是Facebook的官方页面,则返回页面ID,而对于第二个,这是马克的个人资料,事实并非如此。但是,细心 - 对于非公共页面,你就不会在这里得到任何ID无论是。但是,也许在与上述请求,这将导致依赖于对象的类型不同的错误消息的组合,这可能会增加“猜测”这里的质量。

© www.soinside.com 2019 - 2024. All rights reserved.