C# 401未经授权使用google任务

C# 401未经授权使用google任务,c#,oauth,httpwebrequest,google-api,C#,Oauth,Httpwebrequest,Google Api,我正在学习使用谷歌任务api rest 我成功地进入了东京 现在,我尝试使用以下rest url获取任务列表: 在google任务文档中,我写到我需要通过HTTP授权头发送访问令牌,但我不知道如何发送 我在网上搜索了结果,但没有找到解决方案。 我也搜索了这个网站的解决方案,但没有得到一个 我在尝试请求时遇到错误。GetResponse(); 这是我的密码 private AccessToken _accessToken = null; private string Apikey = "my

我正在学习使用谷歌任务api rest

我成功地进入了东京

现在,我尝试使用以下rest url获取任务列表:

在google任务文档中,我写到我需要通过HTTP授权头发送访问令牌,但我不知道如何发送

我在网上搜索了结果,但没有找到解决方案。 我也搜索了这个网站的解决方案,但没有得到一个

我在尝试请求时遇到错误。GetResponse(); 这是我的密码

 private AccessToken _accessToken = null;
private string Apikey = "my api key";
protected void Page_Load(object sender, EventArgs e)
{
    _accessToken = (AccessToken)Session["AccessTokken"];
    string _customerkey = "my customer key";
    string _customerSecret = "my customer secret key";
    Response.Write(_accessToken.Token);

    string nostring = "";
    string nnString = "";
    OAuthBase oauth = new OAuthBase();
    Uri t = new Uri("https://www.googleapis.com/tasks/v1/users/@me/lists");
    string u = oauth.GenerateSignature(t, _customerkey, _customerSecret, _accessToken.Token,
                                       _accessToken.TokenSecret, "GET", oauth.GenerateTimeStamp(),
                                       oauth.GenerateNonce(), out nostring, out nnString);

    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(nostring);
    request.Method = "GET";

    //request.Headers.Add("Authorization: Bearer " + _accessToken.Token);
    WebResponse response = request.GetResponse();
    StreamReader reader = new StreamReader(response.GetResponseStream());
    string responseString = reader.ReadToEnd();
    reader.Close();


    Response.Write(responseString);

有一个Google发布了一个用于访问Google Api的应用程序,其中包括用于执行身份验证的帮助程序,我建议使用此Api并从项目发布者(包括)开始

如果您想继续手动启动Api调用,您可以使用,或者查看,看看Google是如何进行通信的

编辑 从上面链接的源代码中,您可以找到添加http标头的,该标头的值在中指定。相关章节抄录如下

StringBuilder sb = new StringBuilder();
sb.Append("Authorization: OAuth oauth_version=\"1.0\",");
sb.AppendFormat("oauth_nonce=\"{0}\",", EncodingPerRFC3986(nonce));
sb.AppendFormat("oauth_timestamp=\"{0}\",", EncodingPerRFC3986(timeStamp));
sb.AppendFormat("oauth_consumer_key=\"{0}\",", EncodingPerRFC3986(consumerKey));
if (!String.IsNullOrEmpty(token))
{
    sb.AppendFormat("oauth_token=\"{0}\",", EncodingPerRFC3986(
}
sb.Append("oauth_signature_method=\"HMAC-SHA1\",");
sb.AppendFormat("oauth_signature=\"{0}\"", EncodingPerRFC3986(signature));

return sb.ToString();

您可以只使用Api的这一底层,而不用担心生成的服务。请记住,此代码包含在中,因此在法律场合使用DLL实现此特定函数可能比直接处理它更容易

我熟悉Google API的.NET库,但我想使用httpRequest。因为这对twitterapi也有好处,所以它也可以作为restapi。我所需要的只是知道将access tokken发送到google的语法。