2017-06-02 3 views
1

Ich entwickle eine App mit instagram api Feed auf meiner Website zu bringen. Ich habe folgenden Code aber wenn ich versuche, die access_token zuzugreifen den Code mit von Instagram, vorausgesetzt, es gibt mir `400 Bad Anfrage Fehler. ich würde sehr dankbar, wenn mir jemand helfen könnte, dieses Problem zu überwinden. Vielen DankInstagram Api (https://api.instagram.com/oauth/access_token "," Beitrag ", Parameter) gibt 400 Schlechte Anfrage

string code=""; 

public ActionResult Index() 
    { 
     if (!String.IsNullOrEmpty(Request["code"])) 
     { 
      code = Request["code"].ToString(); 
      GetDataInstagramToken(); 

     } 


     return View(); 

     } 


public ActionResult Instagram() 
{ 
    var client_id = ConfigurationManager.AppSettings["instagram.clientid"].ToString(); 
    var redirect_uri = ConfigurationManager.AppSettings["instagram.redirecturi"].ToString(); 
    string url = "https://api.instagram.com/oauth/authorize/?client_id=" + client_id + "&redirect_uri=" + redirect_uri + "&response_type=code"; 
    Response.Redirect(url); 

    return View(); 

} 

public void GetDataInstagramToken() 

{ 
    var json = ""; 
    var page = HttpContext.CurrentHandler as Page; 
    try 
    { 
     NameValueCollection parameters = new NameValueCollection(); 
     parameters.Add("client_id", ConfigurationManager.AppSettings["instagram.clientid"].ToString()); 
     parameters.Add("client_secret", ConfigurationManager.AppSettings["instagram.clientsecret"].ToString()); 
     parameters.Add("grant_type", "authorization_code"); 
     parameters.Add("redirect_uri", ConfigurationManager.AppSettings["instagram.redirecturi"].ToString()); 
     parameters.Add("code", code); 

     WebClient client = new WebClient(); 
     var result = client.UploadValues("https://api.instagram.com/oauth/access_token", "post", parameters); 
     var response = System.Text.Encoding.Default.GetString(result); 

     // deserializing nested JSON string to object 
     var jsResult = (JObject)JsonConvert.DeserializeObject(response); 
     string accessToken = (string)jsResult["access_token"]; 
     int id = (int)jsResult["user"]["id"]; 

     //This code register id and access token to get on client side 
     page.ClientScript.RegisterStartupScript(this.GetType(), "GetToken", "<script> var instagramaccessid=\"" + @"" + id + "" + "\"; var instagramaccesstoken=\"" + @"" + accessToken + "" + "\";</script>"); 




    } 
    catch (Exception ex) 
    { 
     throw; 

    } 
} 

ich erhalte Ausnahme unter var result = client.UploadValues("https://api.instagram.com/oauth/access_token", "post", parameters);

+0

Überprüfen Sie bitte meine Antwort Es kann Ihnen helfen –

Antwort

0

In dieser Zeile

client.UploadValues("https://api.instagram.com/oauth/access_token", "post", parameters); 

Sie senden keinen Wert an Instagram. Wenn Sie Ihren Parameter überprüfen, können Sie Ihren Schlüssel sehen, aber Sie können keinen Wert sehen.

Try this:

public async void GetTokenFromCode() 
    { 
     var values = new Dictionary<string, string> { 
      { "client_id","Your ChatId" }, 
      { "client_secret", "Your Client Secret" }, 
      { "grant_type", "authorization_code" }, 
      { "redirect_uri", "Your Redirect url"}, 
      { "code", "code" } }; 
     var content = new FormUrlEncodedContent(values); 
     var response = await client.PostAsync("https://api.instagram.com/oauth/access_token", content); 
     var responseString = await response.Content.ReadAsStringAsync(); 
    }