asp.net - Facebook Graph 未检索到电子邮件地址
问题描述
我在网站上使用 Facebook 登录,目前它没有检索电子邮件地址我已将 Facebook Graph API 端点版本从 v9.0 更新到 v11.0,我还在 App Review 部分请求了电子邮件和 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
这是登录按钮
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
解决方案
推荐阅读
- akka-stream - 如何检测 Akka Stream 中特定持续时间的间隙?
- mysql - 从所有行中查找并替换“000L”
- php - 我无法让 COOKIE 更新它的值(这是一个整数)
- postgresql - 通过触发器将具有默认值的列的值插入到另一个表中会产生空值
- ios - 使用数组中的 autoId 获取 firebase 数据,保存到另一个数组,然后再使用
- dart - DataTable - 使可滚动,设置背景颜色和修复/冻结标题行和第一列
- cmake - CMake中两个子目录之间的依赖关系
- javascript - 如何导出带有附加数据的 HTML 表格
- ios - 如何在 iOS 中使用来自 esim 或物理 sim 的移动数据来识别用户
- c# - 如何在动态创建的 Html 表中设置 THEAD 的 CssClass 属性