想要通过dotnetOpenAuth请求对gmail的授权

本文关键字:gmail 授权 请求 dotnetOpenAuth | 更新日期: 2023-09-27 18:26:27

我使用dotnetOpenAuth。我想请求对用户的gamil进行授权。

我需要先使用openId吗?

找不到像样的芭蕾舞裙。有人能帮忙吗?

尝试此代码失败。无论如何,我似乎没有在身份验证请求中要求Gmail范围,所以我对感到困惑

public void PrepareAuthorizationRequest(Uri authCallbakUrl)
{
    var consumer = new WebConsumer(GoogleConsumerConsts.ServiceDescription, mConsumerTokenManager);
    // request access
    consumer.Channel.Send(consumer.PrepareRequestUserAuthorization(authCallbakUrl, null, null));
    throw new NoRedirectToAuthPageException();
}
public ProcessAuthorizationRequestResponse ProcessAuthorizationRequest()
{
    ProcessAuthorizationRequestResponse response;
    // Process result from the service provider
    var consumer = new WebConsumer(GoogleConsumerConsts.ServiceDescription, mConsumerTokenManager);
    var accessTokenResponse = consumer.ProcessUserAuthorization();
    // If we didn't have an access token response, this wasn't called by the service provider
    if (accessTokenResponse == null)
        response = new ProcessAuthorizationRequestResponse
                       {
                           IsAuthorized = false
                       };
    else
    {
        // Extract the access token
       string accessToken = accessTokenResponse.AccessToken;
       response = new ProcessAuthorizationRequestResponse
        {
            IsAuthorized = true,
            Token = accessToken,
            Secret = mConsumerTokenManager.GetTokenSecret(accessToken)
        };
    }
    return response;
}
private string Test2()
{
    // Process result from linked in
    var google = new WebConsumer(GoogleConsumerConsts.ServiceDescription, mConsumerTokenManager);
  //  var accessToken = GetAccessTokenForUser();
    var accessToken = String.Empty;
    // Retrieve the user's profile information
    var endpoint = GoogleConsumerConsts.GetGmailFeedsEndpoint;// new MessageReceivingEndpoint("http://api.linkedin.com/v1/people/~", HttpDeliveryMethods.GetRequest);
    var request = google.PrepareAuthorizedRequest(endpoint, accessToken);
    var response = request.GetResponse();
    return (new StreamReader(response.GetResponseStream())).ReadToEnd();
}

想要通过dotnetOpenAuth请求对gmail的授权

不,如果你只想访问用户的Gmail,就不需要使用OpenID。OpenID用于您想要对用户进行身份验证的时候。OAuth用于访问用户的数据。

您需要在您的授权请求中包括scope参数,如本问题所述:使用DotNetOpenAuth向OAuth 1.0授权请求添加scope。