2017-04-15 69 views
1

我試圖讓使用讓YouTube用戶列出它給了我400錯誤

https://www.googleapis.com/youtube/v3/subscriptions?part=subscriberSnippet&mySubscribers=true&key={APPKEY}&channelId={channel ID} 

但是我自己的通道用戶列表中的給了我錯誤

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "youtube.parameter", 
    "reason": "incompatibleParameters", 
    "message": "Incompatible parameters specified in the request: channelId, mySubscribers", 
    "locationType": "parameter", 
    "location": "" 
    } 
    ], 
    "code": 400, 
    "message": "Incompatible parameters specified in the request: channelId, mySubscribers" 
} 
} 
+0

錯誤信息說明本身你確定你使用了正確的價值? – Gntem

+0

@ Mr.Phoenix這個參數我從https://developers.google.com/youtube/v3/docs/channels/list檢查 –

+0

它還說右那裏'channelId'和'mySubscribers'都是「過濾器(指定**只有一個**以下參數)」 –

回答

0
<?php 
$apiKey = 'puthereyouapikey'; 
$chanelId = 'channelid'; 
$json = json_decode((file_get_contents('https://www.googleapis.com/youtube/v3/channels?part=statistics&id='.$channelId.'&key='.$apiKey)), true); 
echo ($json != NULL) ? (($json['items']['0']['statistics']['subscriberCount'])) : ''; 
?> 

的YouTube API v3.0

**You Can Get Your Api key From Here !!** 

1)登錄Google帳戶並轉至https://console.developers.google.com/。您可能不得不開始一個新項目。

2)瀏覽到的API & AUTH,去公共API訪問 - >創建新的密鑰

3)選擇你需要(我用的瀏覽器應用程序「),這會給你一個API密鑰的選項。

4)在YouTube上導航到您的頻道並查看網址。頻道ID是在這裏:https://www.youtube.com/channel/YOUR_CHANNEL_ID

5)使用API​​密鑰和頻道ID與此查詢,讓您的結果:https://www.googleapis.com/youtube/v3/channels?part=statistics&id=YOUR_CHANNEL_ID&key=YOUR_API_KEY

**You Can Get Your ChanelId From Here ** 

https://www.youtube.com/account_advanced

+0

他已經使用V3查詢的網址有問題.. – Gntem

+0

OKK okkk稍候... –

+0

你的回答是完全錯誤的。您在這裏概述的不是OAuth工作流程。此外,您描述的方法只會產生一個頻道的訂戶數量,而不是列表。 – paolo

1

documentation for the parameter mySubscribersof subscribers.list狀態:

此參數只能在經過適當授權的請求中使用。

  1. 擁有API密鑰:

要明白,有兩種方式來查詢YouTube的API是很重要的。您可以在Cloud Console中生成密鑰,然後將其與&key=一起附加到請求中,就像您一樣。

  • 使用授權令牌。令牌授權您代表另一個用戶(頻道)訪問API 。然後,您不僅可以檢索數據,還可以更改頻道或視頻信息或上傳視頻。此外,您可以訪問只有相應用戶才能看到的數據,但公衆不可見。有關如何使用OAuth 2.0框架訪問私人用戶數據,請參閱this guide

  • 後者過程是一個有點複雜,但如果你想使用mySubscriptionsmine參數是必要的。這些參數在使用API​​密鑰時不可用,因爲API密鑰不綁定到用戶/信道。


    既然你寫的,你希望得到您的「自己的頻道訂戶名單」我想你有興趣的已經訂閱了你,而不是你已經訂閱的人的名單的人的名單。針對該方案實際上你可以不使用subscriptions.list端點的channelId參數,因爲該文件指出:

    的渠道ID參數指定的YouTube頻道ID。該API只會返回該頻道的訂閱。

    (在實踐中,這意味着你已經訂閱了,這是不是你想要的所有通道。)

    爲了檢索已訂閱頻道的人的名單,你需要使用OAuth 2.0令牌授權您的請求(請參閱上面鏈接的指南)。

    另外請注意,就像你不會通過YouTube網站上看到這些用戶,他們不會在API中顯示,如果用戶決定隱瞞自己的訂閱在他們的隱私設置。

    +0

    爲什麼你給我負?你可以嘗試我的代碼@paolo –

    +0

    看到你的答案評論。 – paolo

    0

    我沒有具體試過,但我想,如果你從你的要求刪除

    &key={APPKEY}&channelId={channel ID} 
    

    ,而使用

    &access_token={access token} 
    

    你會得到你在找什麼。有時,如果您使用的是API資源管理器,當您真正需要的是使用您在嘗試獲取該帳戶的OAuth 2.0流中捕獲的訪問令牌時,會通過告訴您使用密鑰進行身份驗證來誤導您數據來自。

    相關問題