使用RestClient调用Facebook Graph API。但是,该调用仅返回name和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
"的json。和" id
"。尝试放置范围参数,但它没有任何区别。 FB配置文件没有问题,因为Javascript Facebook API工作正常。但要求是从服务器端调用api。 Javascript API返回" first_name"," last_name"," id"," email","已验证"和许多其他领域。
任何输入?
--- ---解决
感谢@luschn的评论,尝试将scope=public_profile,email
放入第一次调用https://www.facebook.com/dialog/oauth
端点以获取code
(在致电获取access_token
之前code
)并且有效。
答案 0 :(得分:1)
scope
是一个仅在授权过程中有效的参数,您尝试将其添加到简单的API调用中。在API调用本身中,您只需要访问令牌和逗号分隔的字段列表:/me?fields=name,email&access_token=xxx