2017-02-14 1 views
0

との接続:magento2のREST APIは、私はC#ので残りのAPIをmagento2に接続しようとしていますが、私はトークン再びログインを押し、いくつかのデータを取得したり、投稿したいのですときに私は次のエラーを取得していますC#

消費者ではありません%リソースへのアクセスを許可されています。 adminユーザーとしてログインしています。 ここで私は接続するために使用しているコードです:

public virtual void MagentoLogin() 
    { 

     restClient = new RestClient(MagentoServer + "/index.php/rest/V1/integration/admin/token"); 
     var request = new RestRequest(Method.POST); 
     request.AddHeader("Accept", "application/json"); 
     request.AddHeader("Content-Type", "application/json, charset=utf-8"); 
     request.Parameters.Clear(); 
     request.AddJsonBody(new { username = Login, password = Password }); 
     var response = restClient.Execute(request); 
     string content = response.Content.ToString(); 
     content = content.Substring(2, content.Length - 3); 
     LoginToken = content; 

    } 

    public virtual void Fetch() 
    { 
     string requeststring = MagentoServer + "/index.php/rest/V1/store/websites"; 
     restClient = new RestClient(requeststring); 
     var request = new RestRequest(Method.GET); 
     Console.WriteLine("Login token>>>>>>>" + LoginToken + ">>>>>>>"); 
     request.AddHeader("Content-Type", "application/json"); 
     request.AddHeader("Authorization:Bearer ", LoginToken); 
     request.Parameters.Clear(); 
     var response = restClient.Execute(request); 
     string content = response.Content.ToString(); 
     Console.WriteLine(content); 
    } 

答えて

0

が、私はまた、溶液は次のようにAuthorizationヘッダーを設定した「ACCES拒否」だ基本のOAuthを実装されたとき:

request.Headers.Set("Authorization", 
    new AuthenticationHeaderValue("Bearer", token.access_token).ToString()); 

それを置くことは、「手動」あなたのように仕事をしなかったのです。私はRestClientの代わりにマニュアルvar request = (HttpWebRequest) WebRequest.Create(url);を使っていました。だから私のソリューションを次のようなものに変更する必要があるかもしれません:

request.AddHeader("Authorization ", 
    new AuthenticationHeaderValue("Bearer", LoginToken).ToString()); 
関連する問題