微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Facebook Graph 无法检索电子邮件地址

如何解决Facebook Graph 无法检索电子邮件地址

我使用 Facebook 登录网站,目前它不检索电子邮件地址我已将 Facebook Graph API 端点版本从 v9.0 更新到 v11.0,我还请求在“应用审查”部分中同时获得电子邮件和 public_profile 权限,如下图所示但它仍然只检索 (id,name,first_name,last_name ) 并且电子邮件为空这里是处理 Facebook Graph API 的 VB.NET 代码

 Public Sub GetUserData(ByVal FacebookAppId As String,ByVal FacebookAppSecret As String,ByVal RedirectURL As String,ByVal Code As String)
    
    Dim targetUri As Uri = New Uri("https://graph.facebook.com/v11.0/oauth/access_token?client_id=" & FacebookAppId & "&client_secret=" & FacebookAppSecret & "&redirect_uri=" & RedirectURL & "&code=" & Code)
    Dim at As HttpWebRequest = CType(HttpWebRequest.Create(targetUri),HttpWebRequest)
    Dim str As System.IO.StreamReader = New System.IO.StreamReader(at.GetResponse().GetResponseStream())
    Dim token As String = str.ReadToEnd().ToString().Replace("access_token=","")
    Dim combined As String() = token.Split(""""c)
    Dim accesstoken As String = combined(3)
     
    Dim url As String = "https://graph.facebook.com/v11.0/me?fields=id%2Cname%2Cemail%2Cfirst_name%2Clast_name&access_token=" & accesstoken.Trim(""""c) & ""
    Dim request As WebRequest = WebRequest.Create(url)
    request.ContentType = "application/json"
    request.Method = "GET"
    Dim userInfo As StreamReader = New StreamReader(request.GetResponse().GetResponseStream())
    Dim jsonResponse As String = String.Empty
    jsonResponse = userInfo.ReadToEnd()
    Dim sr As JavaScriptSerializer = New JavaScriptSerializer()
    Dim jsondata As String = jsonResponse
    Dim converted As FacebookUserData = sr.Deserialize(Of FacebookUserData)(jsondata)

    userId = converted.id
    userName = converted.name
    userFirstName = converted.first_name
    userLastName = converted.last_name
    userEmail = converted.email



End Sub

Permissions and Features image

这是登录按钮

Protected Sub btnFBSignIn_Click(sender As Object,e As EventArgs) Handles btnFBSignIn.Click


    Dim fbAppId As String = "AppID"
    Dim fbUrllRedirect = "https://mywebsite.com/Login"
    Dim fbApiUrl As String = "https://www.facebook.com/v11.0/dialog/oauth/?client_id=" & fbAppId & "&redirect_uri=" & fbUrllRedirect & "&response_type=code&state=1"
    Response.Redirect(fbApiUrl)




End Sub

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?