2014-07-28 2 views
4

Я создал приложение ASP.NET MVC, которое может разрешить пользователю Bitbucket. Я использовал CSharp.Bitbucket library, чтобы получить секретный токен и значение токена.Как сделать запросы API Bitbucket с токеном доступа?

OAuth tutorial сказал, что с помощью токена я могу совершать вызовы 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, используя маркер доступа?

спасибо!

ответ

4
  1. Сначала вы создаете раздел «Oauth» в разделе управления доступом в настройках учетной записи BitBucket. Это дает вам «Ключ» и «Секрет».

  2. Теперь, используя эти ключи и секрет, вы спрашиваете Bitbucket для токена. В моем случае я сделал http-запрос 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 в узле) с моей Content-Type набор для application/x-www-form-urlencoded:

    request.post("https://yourKeyHere:[email protected]/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" 
    } 
    
  3. Теперь, когда у вас есть маркер, отправить его в заголовке запроса: Authorization: Bearer {access_token}

Подробнее здесь bitbucket's api doc

 Смежные вопросы

  • Нет связанных вопросов^_^