programing

추가 쿼리 매개 변수를 사용할 때 Instagram Redirect URI가 원래 Redirect URI와 일치하지 않음

muds 2023. 11. 2. 22:08
반응형

추가 쿼리 매개 변수를 사용할 때 Instagram Redirect URI가 원래 Redirect URI와 일치하지 않음

저는 사용자가 인스타그램에 로그인하기 버튼을 클릭하여 제 인스타그램 앱을 승인하는 워드프레스 플러그인 작업을 하고 있습니다.승인 후 플러그인은 기본적으로 사용자로부터 최신 인스타그램 사진을 받아 위젯을 통해 보여주기만 합니다.

다음은 플러그인 작동 방식에 대한 단계별 설명입니다.

  1. 사용자는 워드프레스 설정 페이지에서 "인스타그램 로그인"을 클릭합니다.
  2. 사용자는 Instagram의 Authorization 화면(로그인 화면)으로 이동합니다.
  3. 사용자가 내 앱을 인증하고 승인했습니다.
  4. Instagram은 사용자를 My Redirect URI로 리디렉션합니다.
  5. "instagram-api-redirect.php" 파일은 "code" 및 "return_uri" 매개 변수를 모두 가져옵니다.여기서 "코드"는 "액세스 토큰"을 요청하기 위해 사용됩니다.
  6. 액세스 토큰과 함께 WordPress 설정 페이지로 다시 리디렉션됩니다.
  7. 플러그인은 요청 인증에 사용할 "액세스 토큰"을 데이터베이스에 저장합니다.

문제가 있는 것은 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

반응형