YouTube API subscription insert always returns an

2019-07-13 07:12发布

问题:

How to Add a subscription for the authenticated user's channel

https://www.googleapis.com/youtube/v3/subscriptions?part=snippet&key={YOUR_API_KEY}

Request Parameters :-

{ 
"0":
 {  "name": " <code>snippet.resourceId.kind</code>",  "value": "youtube#channel" },

"1": {  "name": " <code>snippet.resourceId.channelId</code>",  "value": "UC_x5XG1OV2P6uZZ5FSM9Ttw" }

}

Response Parameters :-

{
 "error":
 {  "errors":
 [   {    "domain": "youtube.subscription",    "reason": "publisherRequired",    "message": "The subscription resource specified in the request must use the <code>snippet.resourceId</code> property to identify the channel that is being subscribed to."   }  ],  "code": 400,  "message": "The subscription resource specified in the request must use the <code>snippet.resourceId</code> property to identify the channel that is being subscribed to." }
            }

回答1:

This apears to be a bug in the Youtube api. this can be verifyed by checking the api explorer here .

POST https://www.googleapis.com/youtube/v3/subscriptions?part=snippet&key={YOUR_API_KEY}

{
 "0": {
  "name": "snippet.resourceId",
  "value": "youtube#channel"
 },
 "1": {
  "name": "snippet.resourceId",
  "value": "UC_x5XG1OV2P6uZZ5FSM9Ttw"
 }
}

Response

{
 "error": {
  "errors": [
   {
    "domain": "youtube.subscription",
    "reason": "publisherRequired",
    "message": "The subscription resource specified in the request must use the <code>snippet.resourceId</code> property to identify the channel that is being subscribed to."
   }
  ],
  "code": 400,
  "message": "The subscription resource specified in the request must use the <code>snippet.resourceId</code> property to identify the channel that is being subscribed to."
 }
}

There is an issue request for this issue and the team has been pinged.



回答2:

Link of Youtube Data API (V3), you can try here

it's the image example in "try this API" of how i do

POST https://www.googleapis.com/youtube/v3/subscriptions?part=snippet HTTP/1.1
Authorization: Bearer [YOUR_ACCESS_TOKEN]
Accept: application/json
Content-Type: application/json

{
  "snippet": {
  "resourceId": {
  "kind": "youtube#channel",
  "channelId": "UCUK0HBIBWgM2c4vsPhkYY4w"
    }
  }
}