C# 如何使用访问令牌进行Bitbucket API调用?

C# 如何使用访问令牌进行Bitbucket API调用?,c#,oauth,bitbucket,restsharp,bitbucket-api,C#,Oauth,Bitbucket,Restsharp,Bitbucket Api,我创建了一个ASP.NET MVC应用程序,可以在Bitbucket上授权用户。 我过去常常得到令牌秘密和令牌值 他们说我可以使用令牌进行API调用 我知道我可以使用基本授权这样调用API: string url = "https://bitbucket.org/api/1.0/user/"; var request = WebRequest.Create(url) as HttpWebRequest; string credentials = Convert.ToBase64Strin

我创建了一个ASP.NET MVC应用程序,可以在Bitbucket上授权用户。 我过去常常得到令牌秘密和令牌值

他们说我可以使用令牌进行API调用

我知道我可以使用基本授权这样调用API:

 string url = "https://bitbucket.org/api/1.0/user/";
 var request = WebRequest.Create(url) as HttpWebRequest;

 string credentials = Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes("username" + ":" + "password"));
 request.Headers.Add("Authorization", "Basic " + credentials);

 using (var response = request.GetResponse() as HttpWebResponse)
 {
    var reader = new StreamReader(response.GetResponseStream());
    string json = reader.ReadToEnd();
 }
但是如何使用访问令牌调用API呢

多谢各位

  • 首先,在bitbucket帐户设置的访问管理部分创建一个“Oauth”。这会给你一把“钥匙”和一个“秘密”

  • 现在,使用这些密钥和密码,您可以向Bitbucket请求令牌。在我的例子中,我向
    https://bitbucket.org/site/oauth2/access_token
    。在您的情况下,您应该使用与.net等效的。我可以使用Curl或类似以下的Ajax库来实现:

    curl -X POST -u "yourKeyHere:yourSecretHere"  https://bitbucket.org/site/oauth2/access_token -d  grant_type=client_credentials
    
    或者,我的http请求是这样的(在节点中使用superagent),我的
    内容类型设置为
    application/x-www-form-urlencoded

    request.post("https://yourKeyHere:yourSecretHere@bitbucket.org/site/oauth2/      access_token").send('grant_type=client_credentials');`
    
    结果如下:

    {
       "access_token": "blah blah blah HXAhrfr8YeIqGTpkyFio=",
       "scopes": "pipeline snippet issue pullrequest project team account",
       "expires_in": 3600,
       "refresh_token": "hsadgsadvkQ",
       "token_type": "bearer"
    }
    
  • 既然您有了令牌,请在请求头中发送它:
    授权:承载{access\u token}

  • 更多信息请点击这里