FaceBook v2.5/me呼叫,如何设置范围



使用RestClient调用Facebook Graph API。但是,该调用只返回名称和id或已登录的用户。不知道如何设置作用域"public_profile,email",以便呼叫返回电子邮件地址。

 Dim client2 = New RestClient("https://graph.facebook.com")
    webrequest = New RestRequest("v2.5/me", Method.GET)
    webrequest.AddHeader("Authorization", "Bearer " & access_token)
    webrequest.AddParameter("client_id", "11111111111111111")
    webrequest.AddParameter("access_token", access_token)
    webrequest.AddParameter("client_secret", "xxxxxxxxxxxxxxxxxxxxx")
   webrequest.AddParameter("redirect_uri", "https://xxxxxxxxxxxxx/fbcallback")
    webrequest.AddParameter("scope", "public_profile, email")
webrequest.AddParameter("fields", "id, email,first_name, last_name")
        dim res = client2.Execute(webrequest)

这是有效的,但返回一个包含"first_name"、"last_name"one_answers"id"的json。尝试放置scope参数,但没有任何区别。FB配置文件没有问题,因为Javascript Facebook API运行良好。但要求是从服务器端调用api。Javascript API返回"first_name"、"last_name"、"id"、"email"、"verified"和许多其他字段。

有什么意见吗?

---已解决--

感谢@luschn的评论,尝试在对https://www.facebook.com/dialog/oauth端点的第一次调用中放入scope=public_profile,email以获得code(在为code调用access_token之前),结果成功了。

scope是一个仅在授权过程中工作的参数,您正试图将其添加到一个简单的API调用中。在API调用本身中,您只需要Access Token和逗号分隔的字段列表:/me?fields=name,email&access_token=xxx

相关内容

最新更新