0

スコープに電子メールがあり、アプリに電子メールのアクセス許可が与えられていることがわかりますが、結果には電子メールがありませんが、アプリのアクセス トークンでエクスプローラーを使用すると、電子メールを取得できます。これは私を夢中にさせています。私はすべて正しいと確信しています。

    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

少しでも光を当てることができれば、私はとても幸せです。

4

1 に答える 1

0

私は .net プログラマーではありませんが、不足しているものが電子メールだけである場合は、次のようにクエリ文字列をリクエスト URL に追加してみてください。

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

正常に動作し、JSON オブジェクトで電子メール アドレスを返す必要があります。

{
  "email": "user.name@gmail.com",
  "id": "12312312312313123123",
  "type": "user"
}
于 2012-06-27T09:40:21.720 に答える