2011-01-05 8 views
1

私はPHPを使用してYouTubeの動画属性にアクセスしています。タイトル、URL、サムネイル、デュレーションなどYouTubeへのアクセス:PHPの評価(like/dislike)システム

gd:評価(5つ星評価)がyt:rating(like/dislike system)に置き換えられています。

GD:評価(旧)

$gd = $entry->children('http://schemas.google.com/g/2005'); 
if ($gd->rating) { 
    $attrs = $gd->rating->attributes(); 
    $rating = $attrs['average']; 
} else { 
    $rating = 0; 
} 

YT:評価(新しい)

$yt = $entry->children('http://gdata.youtube.com/schemas/2007'); 
if ($yt->rating && $yt->rating[0]->attributes()) { 
    $attrs = $yt->rating[0]->attributes(); 
    $videoobj[$loopCounter]['dislikes'] = strval($attrs['numDislikes']); 
    $videoobj[$loopCounter]['likes'] = strval($attrs['numLikes']); 
} else { 
    $videoobj[$loopCounter]['dislikes'] = 0; 
    $videoobj[$loopCounter]['likes'] = 0; 
} 

YTを使用する:評価コードは動作しませんでした。私がprint_r($yt->rating);を行っても、配列には何もありません。

どこが間違っていますか?

答えて

2

訂正。あなたはできる。

あなたはこれが最後に追加ニーズのアクセスURL:

$url = 'http://gdata.youtube.com/feeds/api/videos/' . $vid . '?v=2'; 

すべての違いを作った - ので、私のコードの最後のビット:

// get <yt:rating> node for like/dislikes 
$yt = $entry->children('http://gdata.youtube.com/schemas/2007'); 
$attrs = $yt->rating->attributes(); 
$obj->dislikes = $attrs['numDislikes']; 
$obj->likes = $attrs['numLikes']; 
echo $obj->dislikes; 
echo ' '; 
echo $obj->likes; 
+0

ええ、私のコードの最後のビットあなたのコードによく似ているので、キーはアクセスしているURLです。 – keif