Get access token of instagram API

安稳与你 提交于 2021-01-29 04:27:13

问题


I want to get the access token in order to diaply the images of an account. So I display a pop up where the user can connect. The pop up works but it redirects to instagram site, with the user connected instead of send me the code. The link to the connection is something like :

https://www.instagram.com/accounts/login/?force_classic_login=&next=/oauth/authorize/%3Fclient_id=aaaaaaaa&redirect_uri=url&response_type=token

I log in and then, it redirects me to :

https://www.instagram.com/oauth/authorize/?client_id=aaaaaaa&redirect_uri=url&response_type=token

I don't understand how I can get the code. And I also used the exact same code as : https://github.com/radykal/instagram-popup-login

Can someone help me please ?

EDIT

var loc = window.location.host+window.location.pathname;

var accessToken = null; //the access token is required to make any endpoint calls, http://instagram.com/developer/endpoints/
    var authenticateInstagram = function(instagramClientId, instagramRedirectUri, callback) {
        //the pop-up window size, change if you want
        var popupWidth = 700,
            popupHeight = 500,
            popupLeft = (window.screen.width - popupWidth) / 2,
            popupTop = (window.screen.height - popupHeight) / 2;
        //the url needs to point to instagram_auth.php
        var popup = window.open('instagram_auth.php', '', 'width='+popupWidth+',height='+popupHeight+',left='+popupLeft+',top='+popupTop+'');
        popup.onload = function() {
            //open authorize url in pop-up
            if(window.location.hash.length == 0) {
                popup.open('https://instagram.com/oauth/authorize/?client_id='+instagramClientId+'&redirect_uri='+instagramRedirectUri+'&response_type=token', '_self');
            }

            //an interval runs to get the access token from the pop-up
            var interval = setInterval(function() {
                try {
                    console.log(window.location);
                    //check if hash exists
                    if(popup.location.hash.length) {
                        //hash found, that includes the access token
                        clearInterval(interval);
                        accessToken = popup.location.hash.slice(14); //slice #access_token= from string
                        popup.close();
                        if(callback != undefined && typeof callback == 'function') callback();
                    }
                }
                catch(evt) {
                    //permission denied
                    console.log("error");
                }
            }, 100);
        }
    };
    function login_callback() {
        alert("You are successfully logged in! Access Token: "+accessToken);
    }
    function login() {
        authenticateInstagram(
            '16edb5c3bc05437594d69178f2aa646a', //instagram client ID
            'localhost/facebook', //instagram redirect URI
            login_callback //optional - a callback function
        );
        return false;
    }

回答1:


The code is ok, I think it is a problem with your app settings: Login to Instagram Developer, go to "Manage Client" and the "security" tab an disable "Implicit OAuth".



来源:https://stackoverflow.com/questions/41117621/get-access-token-of-instagram-api

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!