Require Google to return email address as part of OAuth

后端 未结 7 712
情歌与酒
情歌与酒 2020-12-23 10:23

I am using OAuth to access Gmail with dotNetOAuth. How can I force Google to return user\'s email address as part of callback after authorization?

By default, Google

7条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-23 10:37

    Here's a c# function for when you have pre-authorized the request as detailed above:

            private void FetchUsersEmail(token)
            {
                var emailRequest = @"https://www.googleapis.com/userinfo/email?alt=json&access_token=" + token;
                // Create a request for the URL.        
                var request = WebRequest.Create(emailRequest);
                // Get the response.
                var response = (HttpWebResponse) request.GetResponse();
                // Get the stream containing content returned by the server.
                var dataStream = response.GetResponseStream();
                // Open the stream using a StreamReader for easy access.
                var reader = new StreamReader(dataStream);
                // Read the content. 
                var jsonString = reader.ReadToEnd();
                // Cleanup the streams and the response.
                reader.Close();
                dataStream.Close();
                response.Close();
    
                dynamic json = JValue.Parse(jsonString);
                var currentGoogleEmail = json.data.email;
            }
    

    (JValue is part of JSON.Net)

提交回复
热议问题