액세스 토큰 받기

이 샘플은 웹 앱에서 브라이트코브 OAuth API의 액세스 토큰을 검색하여 프록시를 통해 요청을 전송합니다.

서문

액세스 토큰을 얻는 것은 대부분이 요청을 인증하기 위해 액세스 토큰을 사용하기 때문에 Brightcove API와 관련된 대부분의 작업에서 중요한 작업입니다.

액세스 토큰에 대한 전체 설명은 다음을 참조하십시오. Brightcove OAuth 서비스 작동 방식그리고액세스 토큰 얻기 .

이 샘플은 웹앱에서 액세스 토큰을 가져 오는 방법을 보여줍니다. OAuth API는 CORS가 지원되지 않고 서버 측에서 요청이 이루어져야하므로 앱은 정보를 프록시로 보낸 다음 api 요청을하고 응답을 클라이언트로 다시 보냅니다. 여기서 프록시는 PHP로 작성되었지만 모든 서버 측 언어가 가능합니다. 인터넷을 통해 앱에 POST 요청을 보낼 수만 있으면됩니다.

자격 증명 가져오기

광고를 받으려면 OAuth UI로 이동하여 다음 앱을 등록해야 합니다. client_idclient_secret

사용하려는 API에 필요한 권한을 선택합니다.

API 사용 권한
API 사용 권한

CURL 또는 우편 배달부를 통해 자격 증명을 얻을 수도 있습니다.

OAuth API에서 직접 자격 증명을 가져오는 경우 다양한 API 작업에 필요한 권한은 클라이언트 자격 증명 요청을위한 API 작업을 참조하십시오.

액세스 토큰 앱 받기

소스 코드

GitHub 리포지토리에서 이 샘플과 관련된 모든 코드를 찾아보세요 .

샘플 앱

OAuth API 샘플을 참조하세요. 액세스 토큰 받기 Brightcove 학습 서비스( @rcrooks1969 ) 에코드펜 .

코드펜 사용

위의 CodePen을 효과적으로 사용하기위한 몇 가지 팁은 다음과 같습니다.

프록시 코드

이 페이지에서 자신의 버전을 샘플 응용 프로그램을 빌드하려면 자신의 프록시를 만들고 호스팅해야합니다. (브라이트코브 학습 서비스에서 사용하는 프록시는 브라이트코브 도메인의 요청만 허용합니다.) 출처 제한이없는 프록시 코드 버전은 다음과 같습니다.

     <  ?PHP
    /**
     * access-token-proxy.php-Brightcove RESTful API 용 프록시
     * 액세스 토큰을 가져와 반환
     * Accessing:
     * (HTTPS를 통해 *항상* 프록시에 액세스해야 한다는 점을 참고)
     * 방법: 우편
     *
     * @post {string} client_id-요청에 대한 충분한 권한이있는 OAuth2 클라이언트 ID
     * @post {string} client_secret-요청에 대한 충분한 권한이있는 OAuth2 클라이언트 암호
     *
     * @returns {문자열} $ 응답 - OAuth API에서 수신 된 JSON 응답
     */
    
    
    //CORS 활성화 및 기타 헤더
    header("Access-Control-Allow-Origin: *");
    헤더 (“콘텐츠 유형: 응용 프로그램/json”);
    헤더 (“X-컨텐츠 유형 - 옵션: nosniff”);
    헤더 (“X-XSS 보호”);
    
    // 단일 자격 증명에이 프록시를 사용하는 경우
    // 아래의 클라이언트 ID와 시크릿을 전달하는 대신 하드 코딩 할 수 있습니다.
    
    $클라이언트_ID = $_POST ["클라이언트_ID"];
    $클라이언트_시크릿 = $_POST ["클라이언트_시크릿"];
    $auth_string = “{$client_id}: {$클라이언트_비밀}”;
    $request = "https://oauth.brightcove.com/v4/access_token?grant_type=client_credentials “;
    $ch = 컬링 초기화 ($리퀘스트);
    curl_setopt_array($ch, array(
            컬롭트_포스트 => 참,
            CURLOPT_RETURNTRANSFER => TRUE,
            CURLOPT_SSL_VERIFYPEER => FALSE,
            CURLOPT_USERPWD => $auth_string,
            컬롭트_HTTP헤더 => 배열 (
                'Content-type: application/x-www-form-urlencoded',
            )
        ));
    $response = curl_exec($ch);
    curl_close($ch);
    
    // Check for errors
    if ($response === FALSE) {
        die(curl_error($ch));
        echo '오류가 발생했습니다';
    } else {
      echo $response;
    }
    
    ?>