Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Youtube api 是否有一个字段可以知道youtube频道是否通过youtube API验证?_Youtube Api_Youtube Channels - Fatal编程技术网

Youtube api 是否有一个字段可以知道youtube频道是否通过youtube API验证?

Youtube api 是否有一个字段可以知道youtube频道是否通过youtube API验证?,youtube-api,youtube-channels,Youtube Api,Youtube Channels,我正在使用Youtube数据API,我需要知道是否有任何方法可以发现Youtube频道是一个经过验证的频道。今天刚刚遇到这个问题,虽然看起来很有希望,但如果帐户/频道用户id是否经过验证,我无法让它返回 所以我抛出了一个非常蹩脚的php脚本,它使用DOM模型搜索直接检查html。 如果存在以下元素,则返回true <a href="//support.google.com/youtube/bin/answer.py?answer=3046484&amp;hl=en" class="

我正在使用Youtube数据API,我需要知道是否有任何方法可以发现Youtube频道是一个经过验证的频道。

今天刚刚遇到这个问题,虽然看起来很有希望,但如果帐户/频道用户id是否经过验证,我无法让它返回

所以我抛出了一个非常蹩脚的php脚本,它使用DOM模型搜索直接检查html。 如果存在以下元素,则返回true

<a href="//support.google.com/youtube/bin/answer.py?answer=3046484&amp;hl=en" class="qualified-channel-title-badge" target="_blank">

从今天(2014年9月8日)起,经过验证的用户将返回true

<?php
function isVerified($youtubeUser) 
{ 
    $youtubeUser = trim($youtubeUser); 
    $url = '\''."https://www.youtube.com/user/".$youtubeUser.'\'';
    $url = "https://www.youtube.com/user/".$youtubeUser ;
    $Verified = false;
    echo "<BR>looking at $url "; 

    $ch = curl_init();
    $timeout = 10;
    curl_setopt($ch, CURLOPT_URL, "$url");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $html = curl_exec($ch);
    curl_close($ch);

    $dom = new DOMDocument;
    @$dom->loadHTML($html);

    foreach ( $dom->getElementsByTagName('a') as $link ) {
        $myVar = $link->getAttribute('class');
        $search = "qualified-channel-title-badge";
        $found=false;
        $found = strpos($myVar, $search); 
        if ( $found  !== false) { 
            $Verified = true;  //echo "<BR><font color=green>TRUE</font>";
        } else {
            $Verified = false; //echo "<BR><font color=red>FALSE</font>";
        }
    } 

    if ( $Verified ) {
    return true;
    } else {
    return false;
    }
}
?>


再见

如果可以检查,则可以通过status.longUploadsStatus标志来推断youtube频道的已验证状态。longUploadsStatus标志被允许或符合条件,因为当前此功能要求验证关联的youtube帐户


来源:

关于mpgn的解决方案,请注意,是否验证G+帐户与是否验证YouTube频道上的一个或多个帐户之间存在区别。一个帐户可能有多个通道,并且每个通道都是独立验证的,对于未验证的通道,即使相关的G+帐户已验证


正如@Paul Blakely所建议的,当前最好的方法是检查status.longUploadStatus标志,根据已验证频道上的

,类“has badge”存在

<a href="//support.google.com/youtube/bin/answer.py?answer=3046484&amp;hl=en" class="qualified-channel-title-badge" target="_blank">
2018年工作:

<?php
$key = 'has-badge';
$channel = file_get_contents('https://www.youtube.com/...');

if( stripos($channel, $key) !== FALSE )
    echo "Verified";
else
    echo "Not Verified";
?>


这不再有效。使用channels.list API requesting status部分,我查询一个在YouTube站点上显示已验证徽章的频道,但是API为longUploadsStatus标志返回的值为“LongUploadsSpecified”不是真的。当请求未正确授权时,它返回响应“LongUploadsSpecified”。(您需要由频道所有者授权的令牌)。我正在使用YouTube.Channels.List setKey方法中的令牌进行身份验证,但如果需要为特定频道授权令牌,则无法在常规搜索结果中识别已验证的频道。仅供参考,我正在使用Java API。我已经在Google的bug tracker上为此创建了一个功能请求,因为该API目前似乎没有提供我们正在寻找的功能。如果其他人需要,请将问题标记出来,这样我们可以获得一些牵引力“验证”徽章不是so的“验证”徽章,如果查找徽章状态。longUploadStatus不是一个好的仪表。注意!!进行ListChannel调用时,必须请求
状态
部分,否则将无法访问longUploadStatus字段。