4

我正在使用 facebook Graph API 来验证 Facebook APP,canvas_nameGraph API 返回了一个属性,但 Facebook 将其替换为namespace,我开始使用namespace而不是canvas_name. 正如 Facebook API 文档所说,我们已经删除了带有命名空间的画布名称。问题是,当我调用 Graph API 时,它有时会返回namespace,有时只是name在决定使用哪个属性时令人困惑。

这是我通过 Graph API 验证并获得不同属性的两个不同的 Facebook 应用程序。

我应该使用哪个属性?name还是namespace

http://graph.facebook.com/173782752713273

{
   "id": "173782752713273",
   "name": "fbfarooqtv",  
   "link": "http://www.facebook.com/apps/application.php?id=173782752713273",    
   "namespace": "fbfarooqtv",    
   "icon_url": "http://photos-g.ak.fbcdn.net/photos-ak-snc7/v85006/137/173782752713273/app_2_173782752713273_9103.gif",    
   "logo_url": "http://photos-g.ak.fbcdn.net/photos-ak-snc7/v85006/137/173782752713273/app_1_173782752713273_8525.gif",    
   "weekly_active_users": "1",    
   "monthly_active_users": "2"    
}

和其他回报

http://graph.facebook.com/342927909107736

{  
   "id": "342927909107736",
   "name": "Ticketveri",
   "link": "http://www.facebook.com/apps/application.php?id=342927909107736",
   "icon_url": "http://static.ak.fbcdn.net/rsrc.php/v1/yT/r/4QVMqOjUhcd.gif?_fbgz=1",
   "logo_url": "http://static.ak.fbcdn.net/rsrc.php/v1/y_/r/9myDd8iyu0B.gif?_fbgz=1"
}

谢谢大家给出的答案,我已经使用 appId 完成了我的上述任务,如果有人没有为 facebook 应用程序指定命名空间,他们可以使用 appId 像这样导航到那里的应用程序 http://apps.facebook.com/173782752713273

如果一个人指定了命名空间,那么你也可以使用 appId 和命名空间导航到那里的应用程序,如 http://apps.facebook.com/342927909107736http://apps.facebook.com/fbfarooqtv. 我正在从页面的引用者验证 facebook 应用程序,现在如果任何应用程序没有命名空间,我已经添加了命名空间的后备,然后我从引用者获取 appId 并通过调用图形 API 来验证它,该 API 返回有关应用程序的信息(如果存在) . 如下

http://graph.facebook.com/173782752713273
4

3 回答 3

5

我认为您应该使用“名称”而不是“名称空间”。

原因是“name”对应于“App Display Name”,“namespace”对应于应用程序设置中的“App Namespace”属性。

由于“应用程序显示名称”属性是强制性的,因此可以保证您始终获得“名称”中的值,另一方面,“应用程序命名空间”属性是可选的,因此如果在 APP 中设置命名空间的值,您将只能获得该值设置。

在此处输入图像描述

于 2012-05-03T07:50:53.850 回答
2

您选择的值可能取决于您所说的“验证”应用程序的含义。在我工作的地方,我们有两个“应用程序”。一个是 Windows 桌面应用程序,它不需要命名空间,也没有。我们的另一个“应用程序”是一个“Facebook 应用程序”,它在网络浏览器的 Facebook 画布页面内运行,它确实需要一个命名空间,并且它有一个。

同样,根据您为“验证”所做的工作,应用程序可能会确定您需要哪些值。例如,如果您想将浏览器导航到在 Facebook 画布中运行的“应用程序”,您将需要构建一个 URL,例如:“apps.facebook.com/app_namespace_here”。

我不确定您将如何验证桌面应用程序(或移动应用程序)。

于 2012-05-03T12:03:29.157 回答
2

如果我理解你的问题是正确的,你想知道在什么条件下请求

https://graph.facebook.com/YOUR_APP_ID

生成带有名为命名空间的字段的 JSON 响应,以及在什么情况下不包含命名空间字段。

所有应用程序都有一个名称,该名称在您创建应用程序时设置。当您发出上述请求时,将始终返回名称字段。

应用程序不必有命名空间。创建应用程序时不必指定它(虽然可以但不是强制性的)。如果您创建一个没有命名空间的应用程序,上面的请求将返回一个没有命名空间的 JSON 响应。

换句话说,您的示例中的应用程序二未返回命名空间的最可能原因是尚未在 Facebook 开发人员的应用程序设置页面上指定它。

因此,净,您可以使用名称或命名空间进行验证,但如果您使用命名空间,则必须检查它是否确实已添加到应用程序设置中。

于 2012-05-04T12:14:26.507 回答