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();
Убедитесь, что ваша вызывающая функция является асинхронной задачей.