Authentication 使用OAuth 2.0的Google实验性实现访问现有API端点

Authentication 使用OAuth 2.0的Google实验性实现访问现有API端点,authentication,oauth,google-api,single-sign-on,oauth-2.0,Authentication,Oauth,Google Api,Single Sign On,Oauth 2.0,根据这一点,接收OAuth访问令牌的过程是简单的。我希望看到所有可用的API端点的列表,这些端点可以接受OAuth 2.0访问令牌。但对于我目前的需求,我希望通过某种方式接收使用OAuth 2.0访问令牌的用户的用户名和电子邮件 例如,我可以成功地从该端点接收数据: https://www.google.com/m8/feeds/contacts/default/full https://www.googleapis.com/userinfo/email 但无法从此终结点接收数据: http

根据这一点,接收OAuth访问令牌的过程是简单的。我希望看到所有可用的API端点的列表,这些端点可以接受OAuth 2.0访问令牌。但对于我目前的需求,我希望通过某种方式接收使用OAuth 2.0访问令牌的用户的
用户名
电子邮件

例如,我可以成功地从该端点接收数据:

https://www.google.com/m8/feeds/contacts/default/full
https://www.googleapis.com/userinfo/email
但无法从此终结点接收数据:

https://www.google.com/m8/feeds/contacts/default/full
https://www.googleapis.com/userinfo/email
我尝试了头基和查询基两种传递单个访问令牌的方法。以下是我尝试过的标题:

Authorization: OAuth My_ACCESS_TOKEN
我甚至尝试了OAuth1.0版本的授权头,但是。。。例如,在OAuth2.0中,我们没有秘密访问令牌。Google在OAuth 2.0的实现中使用承载令牌,因此不需要额外的凭证

有人使用Google OAuth 2.0成功接收用户名和电子邮件吗

试试这个:

curl-k-H“授权:OAuth 1/g5_039acafebul7Ocyb31 Uryu5Tuidudiwkuxn1o”


输出:电子邮件=name@gmail.com&isVerified=tru

我找到了我想要的答案。我必须将PHP转换为MVC,但非常简单:

我的MVC
Login
sandbox代码如下所示。 (使用JSON.Net)

为了完成所有工作,我加入了我创建的HttpClient实用程序,以防有人需要它

public class HttpClient
{
    public static string GetUrl(Uri url, string OAuth)
    {
        string result = string.Empty;

        using (WebClient httpClient = new WebClient())
        {
            httpClient.Headers.Add("Authorization","OAuth " + OAuth);
            result = httpClient.DownloadString(url.AbsoluteUri);
        }

        return result;
    }

    public static string PostUrl(Uri url, NameValueCollection formData)
    {
        string result = string.Empty;

        using (WebClient httpClient = new WebClient())
        {
            byte[] bytes = httpClient.UploadValues(url.AbsoluteUri, "POST", formData);
            result = Encoding.UTF8.GetString(bytes);
        }

        return result;
    }
}

同样,这只是为了让它发挥作用而编写的测试代码,我不建议像在生产环境中那样使用它。

我也有同样的问题。您是否找到了解决方案/解决方法?