3

Instasharp 経由で instagram を使用する ASP.NET MVC5 アプリケーションがあります。私のアプリは、Instagram に承認されてから 2 週間後でも問題なく動作しました。しかし、突然動作を停止し、instasharp を使用してコードの行ごとにチェックすることで、Instagram からコードを受け取った後、以下のコードを実行して Access-Code を取得したいときに、instagram から null 値を取得することがわかりました。

 ...
var config = InstagramInfo.Info.Config;
            var auth = new OAuth(config);
            var instagramauthInfo = await auth.RequestToken(code);
....

aut.RequestToken(code) は null を返します。コードの代わりに OAuth.ResponseType.Token を使用しても、認証して RedirectUrl にリダイレクトした後、instagram から完全に null を返します。私が試した解決策は次のとおりです。

  1. Instasharp の最新バージョンを使用する
  2. Https を使用する (Instagram の場所の一部では、https instagram を使用しない場合、アクセス トークンに Null が返される場合があると記載されています)
  3. あるトピックで、誰かが CONTENT TYPE を設定したと言っていましたが、instasharp で content-type を設定する場所がわかりません

この問題を解決するのを手伝ってください.:(

4

1 に答える 1

0

https://github.com/InstaSharp/InstaSharp/tree/master/src/InstaSharp.Sample.Mvcに従ってコードを確認し、OAuth メソッドを変更してみてください。それはうまくいくはずです。

public async Task<ActionResult> OAuth(string code)
      {
          var values = new Dictionary<string, string>
          {
             { "client_id", config.ClientId },
             { "client_secret", config.ClientSecret },
             { "grant_type", "authorization_code" },
             { "redirect_uri", config.RedirectUri },
             { "code", code }
          };
          var content = new FormUrlEncodedContent(values);
          var response = await new HttpClient().PostAsync("https://api.instagram.com/oauth/access_token", content);
          if (!response.IsSuccessStatusCode)
              throw new Exception("Auth failed");
          var responseString = await response.Content.ReadAsStringAsync();          
          dynamic data = System.Web.Helpers.Json.Decode(responseString);
          var oauthResponse = new OAuthResponse
          {
              AccessToken = data.access_token,
              User = new InstaSharp.Models.UserInfo
              {
                  FullName = data.user.full_name,
                  Id = long.Parse(data.user.id),
                  ProfilePicture = data.user.profile_picture,
                  Username = data.user.username
              }
          };            
          Session.Add("InstaSharp.AuthInfo", oauthResponse);
          return RedirectToAction("Index");
      }
于 2018-02-04T14:13:47.283 に答える