图表结果中没有电子邮件,但在Graph API Explorer中显示

时间:2012-06-27 01:41:10

标签: asp.net-mvc facebook

我在我的范围内收到了电子邮件,我看到应用程序已给出电子邮件权限,但结果中没有电子邮件,但如果我使用带有应用程序访问令牌的资源管理器,我会收到电子邮件。 这让我发疯了我相信我的一切都是正确的。

    Return Redirect(String.Format("https://www.facebook.com/dialog/oauth?client_id={0}&scope=email&redirect_uri={1}&state={2}", My.Resources.FacebookApiKey, My.Resources.FacebookRedirectUrl, Session.SessionID))


Dim webRequest As System.Net.HttpWebRequest
        Dim targetURI As New Uri(String.Format("https://graph.facebook.com/oauth/access_token?client_id={0}&redirect_uri={1}&client_secret={2}&code={3}&scope=email", My.Resources.FacebookApiKey, My.Resources.FacebookRedirectUrl, My.Resources.FacebookApiSecret, code))
        webRequest = DirectCast(System.Net.HttpWebRequest.Create(targetURI), System.Net.HttpWebRequest)
        If (webRequest.GetResponse().ContentLength > 0) Then
            Dim str As New System.IO.StreamReader(webRequest.GetResponse().GetResponseStream())
            reply = str.ReadToEnd
            str.Close()
        End If

        Dim replies As String() = Split(reply, "=")
        targetURI = New Uri(String.Format("https://graph.facebook.com/me?access_token={0}", replies(1)))
        webRequest = DirectCast(System.Net.HttpWebRequest.Create(targetURI), System.Net.HttpWebRequest)
        If (webRequest.GetResponse().ContentLength > 0) Then
            Dim str As New System.IO.StreamReader(webRequest.GetResponse().GetResponseStream())
            reply = str.ReadToEnd
            str.Close()
        End If

如果你能发光,我会非常高兴。

1 个答案:

答案 0 :(得分:0)

我不是.net程序员,但如果电子邮件是唯一缺少的,您可以尝试在请求URL中添加查询字符串,如下所示:

https://graph.facebook.com/me?access_token={0}&fields=email

它应该可以正常工作并在JSON对象中返回电子邮件地址:

{
  "email": "user.name@gmail.com",
  "id": "12312312312313123123",
  "type": "user"
}