0

HttpClient でポスト リクエストを作成しようとしていますが、client_id が必要であるという不適切なリクエスト レスポンスが返されたため、パラメータが送信されていないようです。誰かが私が間違っていることを指摘できますか。関連するコードは次のとおりです。

var authLinkUri = 
            new Uri(@"https://api.instagram.com/oauth/access_token");

        // define the request parameters
        var requestObj = new Models.RequestAccessToken()
                             {
                                 client_id = config.ClientId,
                                 client_secret = config.ClientSecret,
                                 grant_type = "authorization_code",
                                 redirect_uri = config.RedirectURI,
                                 code = code
                             };

        // serialize the obj for transfer
        var requestObjSer = JsonConvert.SerializeObject(requestObj);

        // create the content obj
        var content = new StringContent(requestObjSer, Encoding.UTF8, "application/json");

        // make request for auth token
        var response = await requestToken.PostAsync(authLinkUri, content);
4

1 に答える 1

3

わかりました、jsonをinstagramに投稿しようとする多くの実験の後、とにかくこのエンドポイントではなく、Instagramがjsonを受け入れないという結論に達しました。私が間違っている場合は、誰かが私を修正してください。とにかく、ここに私の解決策があります:

// define key,value pair
        var postValues = new List<KeyValuePair<string, string>>
                             {
                                 new KeyValuePair<string, string>
                                     ("client_id",
                                      config.ClientId),
                                 new KeyValuePair<string, string>
                                     ("client_secret",
                                      config.ClientSecret),
                                 new KeyValuePair<string, string>
                                     ("grant_type",
                                      "authorization_code"),
                                 new KeyValuePair<string, string>
                                     ("redirect_uri",
                                      config.RedirectURI),
                                 new KeyValuePair<string, string>("code", code)
                             };

        // now encode the values
        var content = new FormUrlEncodedContent(postValues);

// make request for auth token
        var response = await requestToken.PostAsync(authLinkUri, content);

これは私にとって完璧に機能しました。

于 2013-06-28T20:05:11.880 に答える