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.JdbcOdbc...