我使用facebook Graph API来验证Facebook APP,有一个属性canvas_name
由Graph API返回,但Facebook用namespace
替换它,我开始使用namespace
代替canvas_name
。正如Facebook API文档所说,我们已经删除了带有命名空间的画布名称。
问题是,当我调用Graph API时,它有时返回namespace
,有时只返回name
,因此决定使用哪个属性会让人感到困惑。
以下是我通过Graph API验证并获得不同属性的两个不同的Facebook APP。
我应该使用哪种属性? 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 app指定命名空间,他们可以使用像这样的appId导航到那里的应用程序
http://apps.facebook.com/173782752713273
如果有人指定了命名空间,那么也可以使用appId和命名空间导航到那里的应用程序
http://apps.facebook.com/342927909107736
和http://apps.facebook.com/fbfarooqtv
。
我正在从页面的引用者验证Facebook应用程序,现在我已添加了命名空间的后备,如果任何应用程序没有命名空间然后我从引用者获取appId并通过调用图形API来验证它,如果它存在则返回有关应用程序的信息。如吼叫
http://graph.facebook.com/173782752713273
答案 0 :(得分:5)
我认为你应该使用“name”而不是“namespace”。
原因是“name”对应于“App Display Name”,“namespace”对应于应用程序App Settings中的“App Namespace”属性。
由于“App Display Name”属性是必需的,因此可以保证始终获取“name”中的值,另一方面“App Namespace”属性是可选的,因此只有当它是在APP设置中设置。
答案 1 :(得分:2)
您选择的价值可能取决于您的意思"验证"应用。在我工作的地方,我们有两个应用程序。"一个是Windows桌面应用程序,它不需要命名空间,也没有。我们的其他应用程序"是一个" Facebook应用程序"它在Web浏览器的Facebook画布页面内运行,这确实需要一个命名空间,它有一个。
再次,取决于你正在做什么"验证"应用程序可能会确定您需要哪些值。例如,如果您想要将浏览器导航到" app"在Facebook画布中运行时,您需要构建一个URL,如:" apps.facebook.com/app_namespace_here"。
我不确定如何验证桌面应用(或移动应用)。
答案 2 :(得分:2)
如果我理解你的问题,你会想知道在什么条件下要求
https://graph.facebook.com/YOUR_APP_ID
导致带有名为namespace的字段的JSON响应,以及在什么条件下不包含名称空间字段。
所有应用都有一个在创建应用时设置的名称。发出上述请求时,将始终返回姓名字段。
应用不必拥有命名空间。您不必在创建应用程序时指定它(尽管您可以,但它不是强制性的)。如果您创建的应用程序没有命名空间,则上面的请求将返回没有命名空间的JSON响应。
顺便说一下,你的例子中的应用程序2没有返回命名空间的最可能原因是它尚未在Facebook开发者的应用程序设置页面上指定。
因此,net,您可以使用名称或命名空间进行验证,但如果您使用命名空间,则必须检查它是否已添加到应用程序设置中。