추가 쿼리 매개 변수를 사용할 때 Instagram Redirect URI가 원래 Redirect URI와 일치하지 않음
저는 사용자가 인스타그램에 로그인하기 버튼을 클릭하여 제 인스타그램 앱을 승인하는 워드프레스 플러그인 작업을 하고 있습니다.승인 후 플러그인은 기본적으로 사용자로부터 최신 인스타그램 사진을 받아 위젯을 통해 보여주기만 합니다.
다음은 플러그인 작동 방식에 대한 단계별 설명입니다.
- 사용자는 워드프레스 설정 페이지에서 "인스타그램 로그인"을 클릭합니다.
- 사용자는 Instagram의 Authorization 화면(로그인 화면)으로 이동합니다.
- 사용자가 내 앱을 인증하고 승인했습니다.
- Instagram은 사용자를 My Redirect URI로 리디렉션합니다.
- "instagram-api-redirect.php" 파일은 "code" 및 "return_uri" 매개 변수를 모두 가져옵니다.여기서 "코드"는 "액세스 토큰"을 요청하기 위해 사용됩니다.
- 액세스 토큰과 함께 WordPress 설정 페이지로 다시 리디렉션됩니다.
- 플러그인은 요청 인증에 사용할 "액세스 토큰"을 데이터베이스에 저장합니다.
문제가 있는 것은 5단계에서 "리다이렉트 URI는 원래 리다이렉트 URI와 일치하지 않습니다"라는 오류 메시지가 표시된다는 것입니다.Redirect URI에서 "return_uri" 쿼리 매개 변수를 제거하면 잘 작동합니다.
일부 세부 정보는 다음에 도움이 될 수 있습니다.
다음은 내 앱의 리디렉션 URI입니다.
http:// mysite.com/plugins/pulp_instagram/instagram-api-redirect.php
Instagram의 "/authorization"에 보내는 Redirect URI는 다음과 같습니다.
http:// mysite.com/plugins/pulp_instagram/instagram-api-redirect.php?return_uri=http :// localhost/ instagram-app
Instagram의 "/authorize"에 보내는 전체 승인 URL은 다음과 같습니다.
https:// api.instagram.com/oauth/authorize/ ?client_id=CLIENT-ID&redirect_uri= http:// mysite.com/plugins/pulp_instagram/instagram-api-redirect.php?return_uri=http :// localhost/ instagram-app&response_type= code
URL 응답은 다음과 같습니다.
http:// mysite.com/plugins/pulp_instagram/instagram-api-redirect.php?return_uri=http :// localhost/ instagram-app&code=557d15 dacd0d40459edf70aa 159476de
다음은 "instagram-api-redirect.php" 파일의 전체 코드입니다.
<?php
// the redirect uri
$return_uri = $_GET['return_uri'];
require 'instagram.class.php';
// Initialize class
$instagram = new Instagram(array(
'apiKey' => 'CLIENT-ID',
'apiSecret' => 'CLIENT-SECRET',
'apiCallback' => 'http://mysite.com/plugins/pulp_instagram/instagram-api-redirect.php'
));
// Receive OAuth code parameter
$code = $_GET['code'];
// Check whether the user has granted access
if (true === isset($code)) {
// Receive OAuth token object
$data = $instagram->getOAuthToken($code);
print_r($data);
} else {
// Check whether an error occurred
if (true === isset($_GET['error'])) {
echo 'An error occurred: '.$_GET['error_description'];
}
}
?>
또한 코세리너리의 "Instagram PHP API" 클래스(instagram.class.php)를 사용하고 있습니다.
미리 감사드립니다!
언급URL : https://stackoverflow.com/questions/15035175/instagram-redirect-uri-doesnt-match-original-redirect-uri-when-using-additional
'programing' 카테고리의 다른 글
모든 모바일 장치에서 스크롤 사용 안 함 (0) | 2023.11.02 |
---|---|
XML-RPC WordPress API 및 Python with category를 사용하여 게시물 게시 (0) | 2023.11.02 |
jQuery: 부모의 특정한 자녀에게 어떻게 접근합니까? (0) | 2023.11.02 |
[object Object] Nodejs로 저장된 Blob (0) | 2023.11.02 |
데이터를 삽입하고 특정 열을 확인하여 중복을 방지합니다. (0) | 2023.11.02 |