0

こんにちは、プロジェクトの他のスコープで使用しているため、サービス アカウントを使用してチャネル ID を取得しようとしています。しかし、リクエストプロセスを行うと、サービスアカウント情報が提供されます。私はphpを使用しています

事前に感謝します。どんな助けでも大歓迎です。

pd 実際のアカウント情報をダミー テキストに置き換えます。

タブのチャンネル ID と結果画像

そしてもちろんコード:

$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>";

    }
4

1 に答える 1

3

私の知る限り、Youtube API はサービス アカウント フローをサポートしていません。ドキュメントで説明されているように:

サービス アカウント フローは、ユーザー情報にアクセスしないサーバー間の対話をサポートします。ただし、YouTube Data API はこのフローをサポートしていません。サービス アカウントを YouTube アカウントにリンクする方法がないため、このフローでリクエストを承認しようとするとNoLinkedYouTubeAccountエラーが発生します。

また、Youtube v3 の Google サービス アカウント アクセスの問題では、「YouTube Data API v3 呼び出しにサービス アカウント認証のサポートを追加する予定はありません。」関連する SO の質問#21890982および#21057358に記載されているように、そのためには独自のアカウントが必要であり、ユーザーの介入なしで V3 を使用してサービスの認証を作成できます。

お役に立てれば。

于 2016-11-16T15:48:25.147 に答える