Android: как получить фотографии пользователей в Instagram?

В моем приложении мое требование - получить фотографии пользователя и показать их в моем приложении.

Для этого я прошел аутентификацию, получил токен доступа и ввел пароль пользователя, но это показывает, что у вас нет разрешения на открытие этой страницы. Далее, как я могу получить профиль пользователя и фотографии.

вот мой код:

 String url ="https://instagram.com/oauth/authorize?" +"response_type=token" + 
 "&redirect_uri=" + CALLBACK_URL+"&scope=basic"+"&client_id=" + CLIENT_ID ;

  WebView webview = (WebView)findViewById(R.id.webview);

  webview.setWebViewClient(new WebViewClient() {

        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            String fragment = "#access_token=";
            int start = url.indexOf(fragment);
            if (start > -1) {

                // You can use the accessToken for api calls now.
                String accessToken = url.substring(start + fragment.length(), url.length());

                Log.v(TAG, "OAuth complete, token: [" + accessToken + "].");
                Log.i(TAG, "" +accessToken);
Toast.makeText(ActivityWebView.this, "Token: " + accessToken, Toast.LENGTH_SHORT).show();
            }
        }
    });

    webview.loadUrl(url);
}

person SubbaReddy PolamReddy    schedule 20.09.2012    source источник


Ответы (2)


попробуйте этот код, я получил решение от этого:

 URL example = new URL("https://api.instagram.com/v1/users/self/media/recent?access_token="
                            + accessToken);

            URLConnection tc = example.openConnection();
            BufferedReader in = new BufferedReader(new InputStreamReader(
                    tc.getInputStream()));

            String line;
            while ((line = in.readLine()) != null) {
                JSONObject ob = new JSONObject(line);

                JSONArray object = ob.getJSONArray("data");

                for (int i = 0; i < object.length(); i++) {


                    JSONObject jo = (JSONObject) object.get(i);
                    JSONObject nja = (JSONObject) jo.getJSONObject(photos);

                    JSONObject purl3 = (JSONObject) nja
                            .getJSONObject("thumbnail");
                    Log.i(TAG, "" + purl3.getString("url"));
                }

            }
        } catch (MalformedURLException e) {

            e.printStackTrace();
        } catch (IOException e) {

            e.printStackTrace();
        } catch (JSONException e) {

            e.printStackTrace();
        }

    }
person SubbaReddy PolamReddy    schedule 24.09.2012
comment
Это работает со мной. Но как насчет accessToken? Могу ли я использовать один фиксированный токен доступа с моим приложением, чтобы слишком много пользователей могли получать изображения с использованием одного и того же токена доступа (одновременный доступ с одним и тем же токеном доступа) - person Sami Eltamawy; 04.09.2013
comment
вам нужно сгенерировать токен доступа из идентификатора и секрета вашего клиента и использовать этот токен доступа в своем приложении. - person SubbaReddy PolamReddy; 05.09.2013
comment
Могу ли я использовать этот AccessToken, жестко запрограммированный в моем приложении, чтобы все пользователи могли использовать приложение с этим токеном доступа? Будет ли это проблемой при большом количестве пользователей? - person Sami Eltamawy; 05.09.2013
comment
@SubbaReddyPolamReddy Этот PhotoSet - это класс, который вы создали? - person Daniel Nazareth; 29.11.2013
comment
к чему относятся эти две строки PhotoSet set = new PhotoSet(); и эти наборы.добавить(набор); - person John; 05.05.2014
comment
Ничего связанного с PhotoSet, т.е. для моих локальных стрингов я создал этот класс. Вы можете избежать этих двух строк .. - person SubbaReddy PolamReddy; 13.04.2015

ПОЛУЧИТЬ /users/[USER_ID]/media/recent/?access_token=[ACCESS_TOKEN]

Вы можете нажать на этот URL, чтобы получить канал пользователя (последние 20 фотографий). Это даст вам массив JSON, который вам затем нужно будет проанализировать и отобразить по желанию в вашем приложении.

person Kyle Clegg    schedule 20.09.2012
comment
я ничего не понял из этого, пожалуйста, уточните этот URL - person SubbaReddy PolamReddy; 20.09.2012
comment
здесь USER_ID означает либо имя пользователя, либо client_id... и укажите его в виде URL-адреса.. - person SubbaReddy PolamReddy; 20.09.2012
comment
Могу ли я сгенерировать один accessToken для использования несколькими пользователями? @SubbaReddyPolamReddy, - person Sami Eltamawy; 04.09.2013