0

我正在尝试按照此处提到的步骤http://developers.facebook.com/docs/authentication/devices/ 从用户那里获取身份验证。我执行以下 python 脚本。

#!/usr/bin/python3.2
import os
import urllib
import json

data = urllib.parse.urlencode({'type': 'device_code','client_id': 439862919363245,'scope':})
data = data.encode('utf-8')
request = urllib.request.Request("https://graph.facebook.com/oauth/device")
request.add_header("Content-Type","application/json;charset=utf-8")
try:
    response = urllib.request.urlopen(request,data)
    httpcode = response.getcode()
    responseData = response.read()
    dataMap = json.loads(responseData.decode())
except Exception as e:
    print ("Exception : "+str(e))

if httpcode != 200:
    print('Error : code :'+httpcode+', data : '+data)
    sys.exit(1)

print("Success : ")
print(dataMap)

我得到以下输出:

Exception : HTTP Error 400: Bad Request
Success : 
{'username': 'hamepal', 'first_name': 'Rakesh', 'last_name': 'Kumar', 'name': 'Rakesh Kumar', 'locale': 'en_GB', 'gender': 'male', 'id': '713371871'}

The output is really strange. According to document I should have received the data similar to as following.
{"code":"64a99b030985f39a93b2608a4713e758","user_code":"E5MV1N","verification_uri":"http://www.facebook.com/device","expires_in":1800,"interval":5}

我在这里错过了什么吗?我也尝试复制此处给出的请求 http://oauth-device-demo.appspot.com/但我无法获得任何成功。

我试图在网上搜索,但无法得到任何工作。请帮忙。任何形式的帮助都非常感谢这里。

编辑: 现在当我使用与示例中相同的 client_id 时,它可以正常工作。根据页面上的通知,似乎他们仍然不支持任何其他设备。而且我必须为我的应用程序寻找身份验证流程。

4

2 回答 2

0

在 FB 开发者页面的顶部它说;

请注意,我们目前正在与数量有限的合作伙伴一起测试设备身份验证。它目前不可用于一般用途,我们不接受额外的访问申请。

这可能是你的问题

于 2012-04-22T08:04:43.853 回答
0

实际上很明显,您没有将设备身份验证的使用列入白名单。

引用文档

我们目前正在与数量有限的合作伙伴一起测试设备身份验证。它目前不可用于一般用途,我们不接受额外的访问申请。

您提到的OAuth 2.0 设备身份验证流程演示Simon Cross(Facebook 员工)开发,并且(可能?)允许使用该流程。

于 2012-04-22T08:08:58.180 回答