गुड आफ्टरनून सभी को! मुझे YouTube के Analytics API से estimatedMinutesWatched पैरामीटर प्राप्त करने की आवश्यकता है। मुझे इंटरनेट पर कुछ उदाहरण मिले, उदाहरण के लिए यह वाला, और उन सभी ने इस विधि का उपयोग किया:

$api = $analytics->reports->query($id, $start_date, $end_date, $metric, $optparams);

लेकिन अब आपको विधि में एक सरणी पास करने की आवश्यकता है, यही कारण है कि मुझे त्रुटियां मिलती हैं।

मैं यह नहीं समझ सकता कि कौन-सी सरणी query() को पास की जानी चाहिए। यह मेरा कोड है:

 $client = new Google_Client();
        $client->setClientId($clientID);
        $client->setClientSecret($clientSecret);
        $client->setRedirectUri($redirectUri);
        $client->addScope("email");
        $client->addScope("profile");

// authenticate code from Google OAuth Flow
        if (isset($_GET['code'])) {
            $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
            $client->setAccessToken($token);
            $start_date = '2000-01-01';
            $end_date = '2021-01-01';
            $metrics = 'estimatedMinutesWatched';
            $channel_url='https://www.youtube.com/channel/UCqRTXU9O7v3KeJcQuxmEhaA';
            $ids = 'channel==' . $channel_url . '';
            $analytics = new Google_Service_YouTubeAnalytics($client);
            $optparams = array(
                'dimensions' => '7DayTotals',
                'sort' => 'day',
                'ids' => $ids,
                'start_date' => $start_date,
                'end_date' => $end_date,
                'metric'=>$metrics
            );
            $api = $analytics->reports->query($optparams);

            var_dump($api);
            die();

मुझे जो अपवाद मिला है वह है:

(query) unknown parameter: 'start_date'

मैं समझता हूं कि मुझे क्वेरी को फिर से लिखने की आवश्यकता है, लेकिन वास्तव में यह नहीं पता कि यह कैसे करना है।

0
Таня 15 अक्टूबर 2020, 11:05

1 उत्तर

सबसे बढ़िया उत्तर

YouTube Analytics के आधिकारिक दस्तावेज़ रिपोर्ट क्वेरी के अनुसार, नाम दिनांक पैरामीटर में से हैं: startDate और endDate (ऊंट मामले पर ध्यान दें)।

इस प्रकार आपका एपीआई कॉल इस तरह दिखना चाहिए:

$analytics = new Google_Service_YouTubeAnalytics($client);
$optparams = array(
    'dimensions' => '7DayTotals',
    'sort' => 'day',
    'ids' => $ids,
    'startDate' => $start_date,
    'endDate' => $end_date,
    'metrics' => $metrics
);
$api = $analytics->reports->query($optparams);

मैंने metric पैरामीटर को metricsमें भी ठीक किया है.

यह भी ध्यान रखें कि ids पैरामीटर चाहिए फ़ॉर्म channel == CHANNEL_ID का एक विनिर्देश है, लेकिन आपका channel == CHANNEL_URL है। बस इसे इसके साथ बदलें:

channel == UCqRTXU9O7v3KeJcQuxmEhaA या channel == MINE

आधिकारिक दस्तावेज़ के अनुसार, यह माना जाता है कि UCqRTXU9O7v3KeJcQuxmEhaA उस उपयोगकर्ता से संबंधित चैनल की आईडी है, जिसने OAuth 2.0 प्रमाणीकरण/प्राधिकरण प्रवाह के दौरान आपके ऐप को अधिकृत किया था।

1
stvar 15 अक्टूबर 2020, 12:11