instaSharp oauthResponse Не работает

Я хочу использовать instaSharp для использования instagram api, получения подписчиков anp сообщений и... когда я получаю код с callbackUrl, я не могу отправить Requesttoken(код), и мой oauthResponse равен нулю... это мой код:

async Task getaouth()
    {
        var clientId = ConfigurationManager.AppSettings["client_id"];
        var clientSecret = ConfigurationManager.AppSettings["client_secret"];
        var redirectUri = ConfigurationManager.AppSettings["redirect_uri"];
        var realtimeUri = "";

        InstagramConfig config = new InstagramConfig(clientId, clientSecret, redirectUri, realtimeUri);

        Session.Add("InstaSharp.config", config);


        // add this code to the auth object
        var auth = new InstaSharp.OAuth(config);

        // now we have to call back to instagram and include the code they gave us
        // along with our client secret
        var oauthResponse = await auth.RequestToken(code);

        // tell the session that we are authenticated
        //config.isAuthenticated = true;




        Response.Write(r.ToString());

        // both the client secret and the token are considered sensitive data, so we won't be
        // sending them back to the browser. we'll only store them temporarily.  If a user's session times
        // out, they will have to click on the authenticate button again - sorry bout yer luck.
        Session.Add("InstaSharp.AuthInfo", oauthResponse);

        // all done, lets redirect to the home controller which will send some intial data to the app
        //return RedirectToAction("Index", "Home");
        Response.Write("");
    }

после этого мой oauthResponse будет нулевым! и после вызова этого метода _users.GetSelf() я получаю его: исключение типа 'System.InvalidOperationException' произошло в InstaSharp.dll, но не было обработано в коде пользователя. Дополнительная информация: Вы не аутентифицированы

2 ответа

Вы уже зарегистрировали свое тестовое клиентское приложение в своем аккаунте в Instagram-разработчиках? Если вы этого не сделали, войдите в свою учетную запись здесь, нажмите верхнюю кнопку "Менеджер клиентов" и добавьте свое тестовое приложение, чтобы получить правильный идентификатор клиента и секретную информацию клиента.

Используйте этот способ,

Установите последнюю версию InstaSharp и просто сделайте это:

private InstagramConfig _config;
public async Task< ActionResult> somename(string code)
        {
            if (code != null)
            {
               _config = new InstagramConfig(["InstgramClientId"],
                                                 ["InstgramClientSecret"],
                                                ["InstgramRedirectUrl"]
                                                 );

                var instasharp = new InstaSharp.OAuth(_config);
                var authInfo = await instasharp.RequestToken(code);
                var user = new InstaSharp.Endpoints.Users(_config, authInfo);

                ViewBag.Username = user.OAuthResponse.User.Username;
                ViewBag.Token = authInfo.AccessToken;


                return View();
            }

            return View("name"); 
        }

В вашем случае вы должны сделать вызов вашего метода, как:

var authresponse = await getaouth();

Убедитесь, что ваша вызывающая функция является асинхронной задачей.

Другие вопросы по тегам