2013-06-19 3 views
0

Я хочу показать свой фид пользователя на своем веб-сайте, и то, что я намереваюсь сделать, - это аутентифицировать мою собственную учетную запись пользователя каждый раз, когда пользователь посещает страницу, и таким образом, для входа в его учетную запись instagram.Получить токен доступа к instagram при загрузке страницы

Моя проблема заключается в том, что я с трудом получения маркера доступа Instagram через HttpWebRequest ..

Смотрите следующий неработающего образец кода:

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.instagram.com/oauth/authorize?client_id=xxxxxxxxxxxxxxxxxxxxxx&redirect_uri=http://mywebsite.com&response_type=token"); 
    request.Method = "POST"; 
    request.AllowAutoRedirect = false; 

    HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

    string redirectUrl = response.ResponseUri.ToString(); 

    HttpContext.Current.Response.Write(redirectUrl); 
    HttpContext.Current.Response.End(); 

Если я вставить URL в мой браузер я получаю перенаправление на http://mysite.com/#access_token=xxxxxxxxxxxxxx, и все кажется прекрасным, но когда я пытаюсь выполнить вышеприведенный код, я не могу получить правильный uri из-за того, что между переадресациями до окончательного URL-адреса.

Любая помощь будет много appriciated ..

+0

вы получите этот код работает? Получил тот же самый вопрос сейчас в моем коде и не может найти решение для этого. – Yosoyke

ответ

1

Я рекомендую вам использовать Instasharp библиотеку. InstaSharp - это библиотека C#, которая обертывает API Instagram и упрощает запись приложений с данными Instagram. У этого есть очень простой способ получить токен доступа для пользователя. Проверьте его API.

0

К сожалению, в документации, предоставленной в настоящее время в Instasharp, имеется несколько ошибок. То есть Документация говорит OAuthInfo, когда такого класса не существует. Вот код, который работает для меня. Обратите внимание, что вам вообще не нужно передавать объект пользователя (не знаю, зачем вам это нужно) Также обратите внимание, что аутентифицированные и не прошедшие проверку подлинности методы позволяют передавать разные параметры, считая наиболее важным. Я заметил, что независимо от счетчика, которое вы передаете, возвращается произвольное количество результатов, например. 33 для аутентификации и 13 для аутентификации для одного и того же поискового запроса. InstagramResult - это мой класс-оболочка для объекта, а Config содержит InstagramAuthorisationModel и InstagramAuthorisationModel содержит статические ключи, созданные при регистрации для учетной записи разработчика.

public class InstagramService : IInstagramService 
... 
public InstagramConfig Config 
    { 
     get{return new InstagramConfig("https://api.instagram.com/v1", "https://api.instagram.com/oauth", InstagramAuthorisationModel.ApplicationId, InstagramAuthorisationModel.Secret, InstagramAuthorisationModel.RedirectUri);} 
    } 
    private AuthInfo UserAuthInfo() 
    { 
     return new AuthInfo() 
     { 
      // User =new UserInfo(){}, 
      Access_Token = GetInstagramAccessToken() 
     }; 
    } 

    public string GetInstagramAccessToken() 
    { 
     return _socialMediaRepository.GetInstagramAccessToken(_userApiKey); 
    } 

    public List<InstagramResult> Search(string searchTag, int count) 
    { 
     var auth = UserAuthInfo(); 
     var tags = new InstaSharp.Endpoints.Tags.Authenticated(Config, auth); 
     var searchresult = tags.Recent(searchTag); 
     return searchresult.Data.Select(media => new InstagramResult() 
     { 
      Media = media, 
      image = media.Images.LowResolution.Url 
     }) 
     .ToList(); 
    } 

..

Смежные вопросы