0

안녕하세요. 서비스 계정을 사용하여 채널 ID를 가져 오려고합니다. 프로젝트의 다른 범위에서 사용하고 있기 때문입니다. 그러나 내가 프로세스를 요청하면 서비스 계정 정보를 제공합니다. 나는 PHP를 사용하여 btwYoutube API v3 (서비스 계정 포함) 사용

사전에 많은 도움을 주시면 감사하겠습니다.

p.d. 나는 더미 텍스트에 대한 실제 계정 정보를 대체합니다.

Channel id on the tab and results image

물론 코드의

:

$credentials_file = $this->key_dir . $this->key_file['title']; 

    $client = new \Google_Client(); 
    $client->setAuthConfig($credentials_file); 
    $client->addScope('https://www.googleapis.com/auth/youtube'); 

    $client->setApplicationName("Youtube Analytics"); 
    $client->refreshTokenWithAssertion(); 

    $token = $client->getAccessToken(); 
    $accessToken = $token['access_token']; 
    if (!empty($accessToken)) { 

    $service = new \Google_Service_YouTube($client); 

    $data = $service->channels->listChannels('id,snippet', array('mine' => 'true')); 

    echo "id: " . $data->items[0]->id . "<br>"; 
    echo "Kind: " . $data->items[0]->kind . "<br>"; 
    echo "Snippet -> title : " . $data->items[0]->snippet['title'] . "<br>"; 

    } 

답변

1

AFAIK는 유튜브 API는 서비스 계정 흐름을 지원하지 않습니다. document에 설명 된대로 :

서비스 계정 흐름은 사용자 정보에 액세스하지 않는 서버 간 상호 작용을 지원합니다. 그러나 YouTube Data API는이 흐름을 지원하지 않습니다. 서비스 계정을 YouTube 계정에 연결할 수있는 방법이 없으므로이 흐름을 사용하여 요청을 승인하려고 시도하면 NoLinkedYouTubeAccount 오류가 발생합니다.

Youtube v3 Google Service Account Access 또한 "YouTube Data API v3 호출에 서비스 계정 승인에 대한 지원을 추가 할 계획이 없습니다." 관련 SO 질문 #21890982#21057358에 명시된 바와 같이 사용자 고유의 계정이 필요하며 사용자 개입없이 V3를 사용하는 서비스에 대한 인증을 만들 수 있습니다.

희망이 도움이됩니다.

+0

감사합니다. @ Mr.Rebot은 정확하고 명확합니다. –