Instagram 액세스 토큰을 얻는 방법
Instagram에 대한 액세스 토큰을 얻는 방법에 대해 정말 고심하고 있습니다.
새 클라이언트를 등록한 다음이 URL을 사용했습니다.
클라이언트 ID를 입력하고 URL을 리디렉션합니다.
그런 다음 Url에 코드가 페이지로 리디렉션 거기에서 ID가 내 액세스 토큰을 얻는 단서가 없습니다.
공식 API 문서 링크는 http://instagram.com/developer/authentication/입니다.
장편 단편-두 단계 :
코드 받기
http://instagram.com/developer/clients/manage/의 정보로 https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code 를 다.
액세스 토큰 받기
curl \-F 'client_id=CLIENT-ID' \
-F 'client_secret=CLIENT-SECRET' \
-F 'grant_type=authorization_code' \
-F 'redirect_uri=YOUR-REDIRECT-URI' \
-F 'code=CODE' \
https://api.instagram.com/oauth/access_token
지금까지 사람들이 게시 한 거의 모든 답변은 Instagram의 측 클라이언트 "암시 적 인증"에 따라 엔드에서 액세스 토큰을 처리하는 방법 만 다룹니다. 이 방법은 Instagram의 API 문서에 따르면 덜 안전하고 권장하지 않습니다.
서버를 사용하고 가정하면 Instagram 문서는 cURL 요청의 예만 제공하는 토큰 코드 교환에 대한 명확한 답변을 제공하지 못합니다. 기본적으로 모든 토큰 토큰을 사용하여 서버에 POST 요청을해야하며 사용자 정보를 포함하는 사용자 개체를 포함합니다.
어떤 언어로 작성 중인지 모르겠지만 여기에서 수있는 요청 npm 모듈을 사용하여 Node.js 에서이 문제를 해결했습니다 .
URL을 파싱 하고이 정보를 사용하여 게시물 요청을 보겠습니다.
var code = req.url.split('code=')[1];
request.post(
{ form: { client_id: configAuth.instagramAuth.clientID,
client_secret: configAuth.instagramAuth.clientSecret,
grant_type: 'authorization_code',
redirect_uri: configAuth.instagramAuth.callbackURL,
code: code
},
url: 'https://api.instagram.com/oauth/access_token'
},
function (err, response, body) {
if (err) {
console.log("error in Post", err)
}else{
console.log(JSON.parse(body))
}
}
);
물론 configAuth 항목을 자신의 정보로 바꾸십시오. Node.js를 사용하지 않을 수도 있습니다. 솔루션이 자신의 솔루션을 사용중인 언어로 번역하는 데 도움이되기를 바랍니다.
이전에도 같은 문제가 발생했지만 URL을 https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token으로 변경했습니다.
Instagram API는 귀하가 아니라 모든 Instagram 사용자가 강력한 귀하의 앱으로 인증 할 수 있습니다. Instagram Dev 웹 사이트 의 지침을 따랐습니다 . 첫 번째 (명시 적) 방법을 사용하여 서버에서 작업을 매우 쉽게 수행 할 수 있습니다.
1 단계) 사용자가 인증 프로세스를 시작하기 위해 클릭 할 수있는 링크 또는 버튼을 웹 페이지에 추가합니다.
<a href="https://api.instagram.com/oauth/authorize/?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&response_type=code">Get Started</a>
YOUR_CLIENT_ID
그리고 YOUR_REDIRECT_URI
추가와 함께 인스 타 그램 백엔드에서 응용 프로그램을 등록 후 부여 YOUR_CLIENT_SECRET
됩니다.
2 단계) 앱에 대해 정의한 URI (과 동일) YOUR_REDIRECT_URI
에서 Instagram 서버의 응답을 수락해야합니다. 인스 타 그램 서버는 code
요청에서 변수를 요청합니다. 그런 다음이 code
정보와 앱에 대한 기타 정보 를 사용 하여 서버에서 직접 access_token
. 다음과 같이 Django 프레임 워크를 사용하여 사용하여이 작업을 수행했습니다.
django를의 response
함수에 직접 연결합니다 urls.py
.
from django.conf.urls import url
from . import views
app_name = 'main'
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^response/', views.response, name='response'),
]
다음은 response
요청을 처리 하는 함수입니다 views.py
.
from django.shortcuts import render
import urllib
import urllib2
import json
def response(request):
if 'code' in request.GET:
url = 'https://api.instagram.com/oauth/access_token'
values = {
'client_id':'YOUR_CLIENT_ID',
'client_secret':'YOUR_CLIENT_SECRET',
'redirect_uri':'YOUR_REDIRECT_URI',
'code':request.GET.get('code'),
'grant_type':'authorization_code'
}
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
response_string = response.read()
insta_data = json.loads(response_string)
if 'access_token' in insta_data and 'user' in insta_data:
#authentication success
return render(request, 'main/response.html')
else:
#authentication failure after step 2
return render(request, 'main/auth_error.html')
elif 'error' in req.GET:
#authentication failure after step 1
return render(request, 'main/auth_error.html')
이것은 한 가지 방법 일 뿐이지 만 프로세스는 PHP 또는 다른 서버 측 언어에서 거의 동일해야합니다.
2019 년에 작동하는 쉬운 방법
oauth를 보안 인증에서 암시 적 oauth를하고 다음을로드합니다.
https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token
계정에 REDIRECT-URI를 지정하고 지정된대로 정확하게 입력하십시오.
Instagram 데이터를 사용하는 애플리케이션에 권한을 부여하면 액세스 토큰이 URI 조각으로 반환됩니다. 다음과 같이 보일 것입니다.
이 시도 :
http://dmolsen.com/2013/04/05/generating-access-tokens-for-instagram/
코드를 얻은 후 다음과 같이 할 수 있습니다.
curl -F 'client_id=[your_client_id]' -F 'client_secret=[your_secret_key]' -F 'grant_type=authorization_code' -F 'redirect_uri=[redirect_url]' -F 'code=[code]' https://api.instagram.com/oauth/access_token
100 %이 코드 작업
<a id="button" class="instagram-token-button" href="https://api.instagram.com/oauth/authorize/?client_id=CLIENT_ID&redirect_uri=REDIRECT_URL&response_type=code">Click here to get your Instagram Access Token and User ID</a>
<?PHP
if (isset($_GET['code'])) {
$code = $_GET['code'];
$client_id='< YOUR CLIENT ID >';
$redirect_uri='< YOUR REDIRECT URL >';
$client_secret='< YOUR CLIENT SECRET >';
$url='https://api.instagram.com/oauth/access_token';
$request_fields = array(
'client_id' => $client_id,
'client_secret' => $client_secret,
'grant_type' => 'authorization_code',
'redirect_uri' => $redirect_uri,
'code' => $code
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
$request_fields = http_build_query($request_fields);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request_fields);
$results = curl_exec($ch);
$results = json_decode($results,true);
$access_token = $results['access_token'];
echo $access_token;
exit();
}
?>
이것은 나를 위해 잘 작동했습니다.
http://jelled.com/instagram/access-token
참고로 여기에서 찾을 수있는 jQuery Instagram 플러그인과 함께 사용했습니다. http://potomak.github.com/jquery-instagram
지침을 찾고 있다면이 기사 게시물을 확인하십시오 . C # ASP.NET을 사용하는 경우이 repo를 살펴보십시오 .
https://www.hurl.it/ 를 사용하여 다음 을 볼 수있었습니다. { "code": 400, "error_type": "OAuthException", "error_message": "일치하는 코드를 찾을 수 없거나 이미 사용되었습니다." }
그래서 : 모든 요청에 대해 새 코드를 얻어야합니다.
클라이언트 측 (웹 앱 또는 모바일 앱)에서만 개발하는 것처럼 서버 측을 구축하지 않으려면 암시 적 인증을 선택할 수 있습니다 .
라는 문서에서 먼저 https 요청을 작성하십시오.
지정한 CLIENT-ID 및 REDIRECT-URL 을 입력 하십시오.
그런 다음 로그인 페이지로 이동하지만 가장 중요한 것은 사용자가 올바르게 로그인 한 후 액세스 토큰을 얻는 방법입니다.
사용자가 올바른 계정과 비밀번호로 로그인 버튼을 클릭하면 웹 페이지가 지정한 URL로 리디렉션되고 새 액세스 토큰이 이어집니다.
나는 자바 펼쳐 이벤트에 익숙하지 않지만 Android 스튜디오에서는 웹 페이지가 URL을 새 URL (리디렉션)로 재정의하는 이벤트를 수신 하는 리스너 를 추가 하는 쉬운 방법입니다 . 그럼 리디렉션 URL에서 당신은 쉽게 분할하여 다음과 같은 액세스 토큰을 얻을 수 있습니다.
공유 access_token = url.split ( "=") [1];
URL을 각 "="문자의 배열로 나누는 것을 의미하며, 액세스 토큰은 분명히 [1]에 존재합니다.
에서 clinet 페이지 관리로 이동 :
http://www.instagram.com/developer/
리디렉션 URL 설정
다음 :
이 코드를 사용하여 액세스 토큰을 얻으십시오.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>tst</title>
<script src="../jq.js"></script>
<script type="text/javascript">
$.ajax({
type: 'GET',
url: 'https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code'
dataType: 'jsonp'}).done(function(response){
var access = window.location.hash.substring(14);
//you have access token in access var
});
</script>
</head>
<body>
</body>
</html>
참고 URL : https://stackoverflow.com/questions/16496511/how-to-get-an-instagram-access-token
'ProgramingTip' 카테고리의 다른 글
Xcode 6 App Store 출시이 "계정에 이미 유효한 iOS 배포 인증서가 있습니다"와 함께 실패 함 (0) | 2020.10.30 |
---|---|
2d 목록을 2d numpy 배열로 변환하는 방법은 무엇입니까? (0) | 2020.10.30 |
void를 반환하는 ASP.Net MVC 컨트롤러 작업 (0) | 2020.10.30 |
Eclipse Javadoc 생성 마법사 : "Javadoc 명령"이란 무엇입니까? (0) | 2020.10.30 |
Jshint.com은 "엄격한 사용"을 요구합니다. (0) | 2020.10.30 |