2013-12-11 2 views
0

Чтобы сделать запрос к instagram api. Мне нужен токен доступа.Получение Instagram access_token через api в C# a

Это описано здесь.

Эти токены доступа могут меняться, поэтому мне нужно искать через api, чтобы получить «код», а затем токен доступа. Большинство примеров, которые я вижу в Интернете, запрашивают у пользователя Instagram, который затем вызывает URL-адрес обратного вызова и от вас, и генерирует access_token.

Как я с помощью API (и не войдя в instragram) получить щёток «код»/

Я надеялся на что-то вроде этого.

var accessUrl = string.Format(
        "https://instagram.com/oauth/authorize/?client_id={0}&redirect_uri={1}&response_type=code", 
        instagramClientId, redirectUrl); 

      WebRequest request = WebRequest.Create(accessUrl); 
      WebResponse response = request.GetResponse(); 

Чтобы быть ясно, я не спрашиваю, как получить access_token, но как я могу получить «код», чем генерирует access_token, не входя в Instagram

+0

Дополнительная информация. Я хотел показать недавнюю публикацию с идентификатора пользователя. Документы указали, что для этого мне нужен auth_token. Но я смог получить следующую работу. http://stackoverflow.com/questions/17373886/how-can-i-get-a-users-media-from-instagram-without-authenticating-as-a-user# – frosty

ответ

1

code добавляется в качестве URL-адреса в строку запроса GET запросите, чтобы Instagram отправил ваш URL-адрес обратного вызова.

Например, если ваш обратный вызов URL является:

http://www.mycallbackurl.com/callback 

Instagram (после получения запроса access_token) направит GET вызов:

http://mycallbackurl.com/callback?code=20938409823kjl2k3j4o998as0df809s80980234809 

(это в кодировке base64).

Затем нужно захватить этот параметр URL-адрес на сервере обратного вызова и не повторить его на странице (ничего другого, только значение параметра code), в результате чего-то вроде:

<html> 
    <body>20938409823kjl2k3j4o998as0df809s80980234809</body> 
</html> 

Это может можно легко сделать с PHP:

if (isset($_GET['code'])) 
    echo $_GET['code']; 
else 
    //do all the other stuff your page does 

Надеюсь, если вы не используете PHP вы можете различить, как достичь того же результата. Эта часть потока аутентификации довольно плохо документирована, но, надеюсь, это помогает.

Также: (Не уверен, что я понимаю эту часть вопроса или нет, но) единственный способ аутентификации, который они разрешают, - это страница входа в браузер. Если вы пытаетесь создать свой собственный логин и пароль, он не будет работать.

+0

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

+1

Вам будет нужно, чтобы это доступно публично все время для тех, кто аутентифицируется. Если токен истекает, вам нужно снова открыть окно авторизации входа. Это ужасный метод аутентификации, и я искренне желаю, чтобы они предложили полное рукопожатие аутентификации OAuth2, которое можно было сделать только с помощью 'GET'.Но они этого не делают, поэтому во всех сторонних приложениях, которые вы видите там, появляется страница авторизации после входа в систему. – brandonscript

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