Как отправить сообщение пользователю YouTube с помощью API YouTube?

Я разрабатываю скрипт для отправки сообщения пользователю YouTube. На самом деле, у меня есть потоки данных YouTube с информацией - идентификатор видео YouTube, имя автора, подробности и т. д. для этого соответствующего автора. Мне нужно отправить сообщение с помощью API YouTube. Это возможно?

Я уже написал логин Oauth и ленту API YouTube, чтобы получить видео и информацию о пользователе для этого соответствующего видео. Я ссылался на эту документацию в API YouTube — https://developers.google.com/youtube/2.0/developers_guide_protocol_messages#Sending_a_message для отправки сообщения, но для этого нет опций. Есть только варианты отправки сообщения в виде комментариев вместо нового письма на почтовый ящик соответствующего автора видео.

Поэтому, пожалуйста, сообщите мне, если вы знаете об этом. Я вставил свой сценарий ниже.

 $developer_key='###########################';
    $client_id=     '#################';
    $client_secret='#################';

    // error checking; user might have denied access
    if (isset($_GET['error'])) {
        if ($_GET['error'] == 'access_denied') {
            echo('You have denied access. Click <a href="'. $_SERVER["SCRIPT_NAME"] .'">here</a> to retry&hellip;');
        } else {
            echo("An error has occurred: ". $_GET['error']);
        }
        exit;
    }

    // Step 1: redirect to google account login if necessary
    if(!isset($_GET['code']) || $_GET['code'] === '') { 
        Header('Location: https://accounts.google.com/o/oauth2/auth?client_id='. $client_id .
                '&redirect_uri=http%3A%2F%2Flocalhost%2Ftest%2Foauth_1.php' .
                '&scope=https://gdata.youtube.com&response_type=code&access_type=offline',
            true, 307);
        exit;
    }
    $authorization_code= $_GET['code'];

    // Step 2: use authorization code to get access token
    $url = "https://accounts.google.com/o/oauth2/token";
    $message_post= 'code='. $authorization_code .
            '&client_id='. $client_id . 
            '&client_secret='. $client_secret .
            '&redirect_uri=http://localhost/test/oauth_1.php' .
            '&grant_type=authorization_code';


    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $message_post);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($ch);

    if ($cur_error= curl_error($ch)) {
        echo($cur_error);
        curl_close($ch);
        exit;
    }
    curl_close($ch);

    $jsonArray= json_decode($result, true);

    if ($jsonArray === null) {
        echo("Could not decode JSON.");
        exit;
    }

    if (isset($jsonArray['error'])) {
        echo("An error has occurred: ". $jsonArray['error']);
        exit;
    }

    if (!isset($jsonArray['access_token'])) {
        echo("Access token not found.");
        exit;
    }


    //The user's authentication token
     $access_token= $jsonArray['access_token'];
    $title ='krishna'; //The title of the caption track
    $lang = 'en'; //The languageof the caption track
    //$transcript = $_REQUEST['transcript']; //The caption file data
    $ur='https://gdata.youtube.com/feeds/api/users/recepient_username/inbox';



    $headers = array(

         'Host: gdata.youtube.com',
        'Content-Type: application/atom+xml utf-8',
        'Content-Language: ' . $lang,
        'Slug: ' . rawurlencode($title),
        'Authorization: AuthSub token=' . $access_token,
        'GData-Version: 2',
        'X-GData-Key: key=' . $developer_key
    );


    $xml = '&xml=<?xml version="1.0" encoding="UTF-8"?>
    <entry xmlns="http://www.w3.org/2005/Atom"
        xmlns:yt="http://gdata.youtube.com/schemas/2007">
      <id>cSVSeHFKBjU</id>
      <summary>sending a message from the api</summary>
    </entry>';
    // create a new cURL resource
    $ch = curl_init();

    // set URL and other appropriate options
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_URL, $url );
    curl_setopt($ch, CURLOPT_HEADER, TRUE );
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers );
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, urlencode($xml) );
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_VERBOSE, 1 );

    $tt = curl_getinfo($ch);
    print_r($tt);


    $result = curl_exec($ch);
    print_r($result);


    // close cURL resource, and free up system resources
    curl_close($ch);

echo "DONE! Token:" . $access_token . "<br />\n";
var_dump($result);

ТАК, пожалуйста, проверьте и сообщите мне, есть ли какие-либо варианты отправки почты пользователю видео вместо комментариев.


person krishna    schedule 30.04.2013    source источник


Ответы (1)


API YouTube v2.0 поддерживает отправку новых сообщений в папку «Входящие» пользователя, но сообщение должно содержать как видео, так и комментарий к этому видео. Вы не можете отправить только текстовое сообщение.

Документацию, которая включает пример использования, объясняющий, как предполагается использовать поддержку обмена сообщениями YouTube, можно найти здесь.

person Cormac Driver    schedule 30.04.2013