2013-12-10 14 views

Trả lời

1

chỉ chạy vào ngày hôm nay, và trong khi channelBranding of the V3 youtube API sẽ hứa hẹn, tôi không thể làm cho nó trở lại nếu tài khoản/kênh sử dụng id đã được xác nhận hoặc không

vì vậy tôi đã ném lên một kịch bản php khá què mà sử dụng mô hình DOM tìm kiếm để kiểm tra trực tiếp html. để trả về true nếu có phần tử sau.

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

Tính đến hôm nay (2014/09/08) một người sử dụng xác nhận sẽ trở lại đúng ..

<?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; 
    } 
} 
?> 

Bye cho bây giờ!

0

Nếu có thể kiểm tra suy ra trạng thái đã xác minh của kênh youtube thông qua cờ status.longUploadsStatus được cho phép hoặc đủ điều kiện, vì hiện tại tính năng này yêu cầu tài khoản youtube được liên kết phải được xác minh.

nguồn: https://developers.google.com/youtube/v3/docs/channels

+0

này không còn làm việc. Sử dụng channel.list API yêu cầu phần trạng thái, tôi truy vấn kênh hiển thị huy hiệu đã được xác minh trên trang web YouTube, tuy nhiên giá trị được API trả về cho cờ longUploadsStatus là "longUploadsUnspecified" không đúng. – cheino

+0

nó trả về phản hồi "longUploadsUnspecified" khi yêu cầu không được ủy quyền đúng cách. (bạn cần một mã thông báo được chủ sở hữu kênh xác thực). –

+1

Tôi đang xác thực bằng mã thông báo trong phương pháp set.Channels.List setKey của YouTube, nhưng nếu mã thông báo cần được ủy quyền cho kênh cụ thể, nó sẽ đánh bại mục đích xác định kênh đã xác minh trong kết quả tìm kiếm chung. FYI, tôi đang sử dụng API Java. – cheino

3

Một giải pháp thích hợp, bạn cần phải làm điều này trong hai bước:

Bước 1, Sử dụng v3 API dữ liệu YouTube và ressource channel.list với các thông số:

part:contentDetails 
id:CHANNEL_ID // or forUsername:USERNAME 

Đây là đầu ra:

{ 
    "kind": "youtube#channel", 
    "etag": "\"CuSCwMPVmgi8taDtE2LV6HdgkN0/Mu0u2QSDqnFcBvUF5X21CnGSEac\"", 
    "id": "UCa10nxShhzNrCE1o2ZOPztg", 
    "contentDetails": { 
    "relatedPlaylists": { 
    "uploads": "UUa10nxShhzNrCE1o2ZOPztg" 
    }, 
    "googlePlusUserId": "105350456099841048474" 
    } 
    } 
.210

thêm tại: https://developers.google.com/youtube/v3/docs/channels/list

BƯỚC 2 với các API Google Plus, có googlePlusUserId từ yêu cầu trước và sử dụng tài nguyên plus.people.get với tham số:

userId:105350456099841048474 

Kết quả sẽ hiển thị:

"isPlusUser": true, 
"plusOneCount": 215098, 
"circledByCount": 12621, 
"verified": true, 

Trường được xác minh là những gì bạn muốn!

thêm: https://developers.google.com/+/web/api/rest/latest/people/get

+2

Trường googlePlusUserId đã không được chấp nhận và bị xóa và không còn có sẵn trong đối tượng contentDetails nữa. – cheino

0

RE: giải pháp mpgn của, lưu ý rằng có một sự phân biệt giữa cho dù tài khoản G + được xác minh và liệu một hoặc nhiều tài khoản kênh YouTube được xác minh. Có thể một tài khoản có nhiều kênh và mỗi kênh trong số đó được xác minh độc lập và kênh không được xác minh mặc dù tài khoản G + được liên kết được xác minh.

Như @ Paul Blakely cho thấy, cách tốt nhất hiện nay để làm điều này là để kiểm tra cờ status.longUploadStatus, mỗi https://developers.google.com/youtube/v3/docs/channels

1

Mở kênh xác minh, lớp "có-huy hiệu" là hiện tại.

làm việc vào năm 2018:

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

if(stripos($channel, $key) !== FALSE) 
    echo "Verified"; 
else 
    echo "Not Verified"; 
?> 
Các vấn đề liên quan