2013-04-02 5 views
2

youtuba api를 사용하여 메시지를 보내고 있습니다. 하지만 내 파일에 오류가있어. 유효하지 않은 토큰 401 오류를 표시합니다. 내 파일은 아래에 주어져 있습니다. 나는 정말로 중요한 것을 놓치고 있지만 그것을 알아 채지 못할 정도로 작아야한다는 것을 확신합니다.토큰이 유효하지 않습니다 - YouTube API의 오류 401

<?php 
$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, "https://www.google.com/accounts/ClientLogin"); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

$data = array('accountType' => 'GOOGLE', 
'Email' => 'User Email', 
'Passwd' => 'pass', 
'source'=>'PHI-cUrl-Example', 
'service'=>'lh2'); 

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    $kk = curl_getinfo($ch); 
$response = curl_exec($ch); 

list($auth, $youtubeuser) = explode("\n", $response); 
list($authlabel, $authvalue) = array_map("trim", explode("=", $auth)); 
list($youtubeuserlabel, $youtubeuservalue) = array_map("trim", explode("=", $youtubeuser)); 


$developer_key = 'AI39si7SavL5-RUoR0kvGjd0h4mx9kH3ii6f39hcAFs3O1Gf15E_3YbGh-vTnL6mLFKmSmNJXOWcNxauP-0Zw41obCDrcGoZVw'; 
$token = '7zWKm-LZWm4'; //The user's authentication token 
$url = "http://gdata.youtube.com/feeds/api/users/worshipuk/inbox" ; //The URL I need to send the POST request to 
$title = $_REQUEST['title']; //The title of the caption track 
$lang = $_REQUEST['lang']; //The languageof the caption track 
$transcript = $_REQUEST['transcript']; //The caption file data 
$headers = array(
    'Host: gdata.youtube.com', 
    'Content-Type: application/atom+xml', 
    'Content-Language: ' . $lang, 
    'Slug: ' . rawurlencode($title), 
    'Authorization: GoogleLogin auth='.$authvalue, 
    'GData-Version: 2', 
    'X-GData-Key: key=' . $developer_key 
); 



$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>Qm6znjThL2Y</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_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); 
exit; 

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

내 코드에 문제가 있습니까? 나를 안내 해줘. 이 코드에서 어떻게 결과를 얻을 수 있습니까?

+0

오류 401은 액세스가 거부되었으므로 많은 도움이되지는 않을 것이라고 생각합니다. –

+0

이메일 '=>'사용자 이메일 ','Passwd '=>'패스 ', 이메일과 패스워드를 입력하십시오. 그런 다음 계속합니다. –

답변

1

대부분 인증이 잘못되었을 수 있습니다. 먼저 해당 부분을 디버그하십시오. 올바른 범위를 사용하지 않거나 콘솔에서 API를 사용할 수 없습니다.

별도의 메모에서 Youtube Data API v3을 사용하는 것이 좋습니다. 시작하기 위해 PHP client librarygreat samples을 업데이트했습니다.

+1

제 첫 부분이 잘 작동하고 있습니다. 올바른 응답이 YouTube에서 왔습니다. –

+1

제게 youtube.all 샘플에 샘플 파일을 보내주세요 젠드 프레임 작업에 있습니다. 그래서 나는 혼란 스럽다. 친절하게 도와주세요. –

관련 문제