2017-01-20 257 views
0

我使用Vimeo的API,同時使一個GET調用訪問用戶的視頻我做不能過濾結果VIMEO API與GET調用領域PARAM

https://api.vimeo.com/users/61402929/videos?access_token=token 

此函數返回一個JSON響應

{ 
    "total": 1, 
    "page": 1, 
    "per_page": 25, 
    "paging": { 
     "next": null, 
     "previous": null, 
     "first": "https://stackoverflow.com/users/61402929/videos?access_token=365879aad6244864dab70902890fc1a1&page=1", 
     "last": "https://stackoverflow.com/users/61402929/videos?access_token=365879aad6244864dab70902890fc1a1&page=1" 
    }, 
    "data": [ 
     { 
      "uri": "/videos/200383630", 
      "name": "Bhuvan bam _ Bb ki vines _ playing piano _ Saagar jaisi aankhon waali _ bhuvan bam live (360p_30fps_H264-96kbit_AAC)", 
      "description": "BB Ki Vines", 
      "link": "https://vimeo.com/200383630", 
      "duration": 59, 
      "width": 320, 
      "language": null, 
      "height": 320, 
      "embed": { 
       "uri": null, 
       "html": "<iframe src=\"https://player.vimeo.com/video/200383630?badge=0&autopause=0&player_id=0\" width=\"320\" height=\"320\" frameborder=\"0\" title=\"Bhuvan bam _ Bb ki vines _ playing piano _ Saagar jaisi aankhon waali _ bhuvan bam live (360p_30fps_H264-96kbit_AAC)\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>", 
       "buttons": { 
        "like": true, 
        "watchlater": true, 
        "share": true, 
        "embed": true, 
        "hd": false, 
        "fullscreen": true, 
        "scaling": true 
       }, 
       "logos": { 
        "vimeo": true, 
        "custom": { 
         "active": false, 
         "link": null, 
         "sticky": false 
        } 
       }, 
       "title": { 
        "name": "user", 
        "owner": "user", 
        "portrait": "user" 
       }, 
       "playbar": true, 
       "volume": true, 
       "color": "00adef" 
      }, 
      "created_time": "2017-01-20T17:57:04+00:00", 
      "modified_time": "2017-01-20T17:58:41+00:00", 
      "release_time": "2017-01-20T17:57:04+00:00", 
      "content_rating": [ 
       "unrated" 
      ], 
      "license": null, 
      "privacy": { 
       "view": "anybody", 
       "embed": "public", 
       "download": true, 
       "add": true, 
       "comments": "anybody" 
      }, 
      "pictures": { 
       "uri": "/videos/200383630/pictures/613872508", 
       "active": true, 
       "type": "custom", 
       "sizes": [ 
        { 
         "width": 100, 
         "height": 75, 
         "link": "https://i.vimeocdn.com/video/613872508_100x75.webp?r=pad", 
         "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F613872508_100x75.webp&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png" 
        }, 
        { 
         "width": 200, 
         "height": 150, 
         "link": "https://i.vimeocdn.com/video/613872508_200x150.webp?r=pad", 
         "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F613872508_200x150.webp&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png" 
        }, 
        { 
         "width": 295, 
         "height": 166, 
         "link": "https://i.vimeocdn.com/video/613872508_295x166.webp?r=pad", 
         "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F613872508_295x166.webp&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png" 
        }, 
        { 
         "width": 640, 
         "height": 640, 
         "link": "https://i.vimeocdn.com/video/613872508_640x640.webp?r=pad", 
         "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F613872508_640x640.webp&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png" 
        }, 
        { 
         "width": 960, 
         "height": 960, 
         "link": "https://i.vimeocdn.com/video/613872508_960x960.webp?r=pad", 
         "link_with_play_button": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F613872508_960x960.webp&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png" 
        } 
       ], 
       "resource_key": "fdb74e1e2dcaf7c929cfe14240765f45f2d2a302" 
      }, 
      "tags": [], 
      "stats": { 
       "plays": 0 
      }, 
      "metadata": { 
       "connections": { 
        "comments": { 
         "uri": "/videos/200383630/comments", 
         "options": [ 
          "GET", 
          "POST" 
         ], 
         "total": 0 
        }, 
        "credits": { 
         "uri": "/videos/200383630/credits", 
         "options": [ 
          "GET", 
          "POST" 
         ], 
         "total": 1 
        }, 
        "likes": { 
         "uri": "/videos/200383630/likes", 
         "options": [ 
          "GET" 
         ], 
         "total": 0 
        }, 
        "pictures": { 
         "uri": "/videos/200383630/pictures", 
         "options": [ 
          "GET", 
          "POST" 
         ], 
         "total": 1 
        }, 
        "texttracks": { 
         "uri": "/videos/200383630/texttracks", 
         "options": [ 
          "GET", 
          "POST" 
         ], 
         "total": 0 
        }, 
        "related": null 
       }, 
       "interactions": { 
        "watchlater": { 
         "added": false, 
         "added_time": null, 
         "uri": "https://stackoverflow.com/users/61402929/watchlater/200383630" 
        } 
       } 
      }, 
      "user": { 
       "uri": "https://stackoverflow.com/users/61402929", 
       "name": "Rishabh Kumar", 
       "link": "https://vimeo.com/user61402929", 
       "location": null, 
       "bio": null, 
       "created_time": "2017-01-11T16:15:43+00:00", 
       "account": "basic", 
       "pictures": null, 
       "websites": [], 
       "metadata": { 
        "connections": { 
         "activities": { 
          "uri": "https://stackoverflow.com/users/61402929/activities", 
          "options": [ 
           "GET" 
          ] 
         }, 
         "albums": { 
          "uri": "https://stackoverflow.com/users/61402929/albums", 
          "options": [ 
           "GET" 
          ], 
          "total": 0 
         }, 
         "appearances": { 
          "uri": "https://stackoverflow.com/users/61402929/appearances", 
          "options": [ 
           "GET" 
          ], 
          "total": 0 
         }, 
         "categories": { 
          "uri": "https://stackoverflow.com/users/61402929/categories", 
          "options": [ 
           "GET" 
          ], 
          "total": 0 
         }, 
         "channels": { 
          "uri": "https://stackoverflow.com/users/61402929/channels", 
          "options": [ 
           "GET" 
          ], 
          "total": 0 
         }, 
         "feed": { 
          "uri": "https://stackoverflow.com/users/61402929/feed", 
          "options": [ 
           "GET" 
          ] 
         }, 
         "followers": { 
          "uri": "https://stackoverflow.com/users/61402929/followers", 
          "options": [ 
           "GET" 
          ], 
          "total": 0 
         }, 
         "following": { 
          "uri": "https://stackoverflow.com/users/61402929/following", 
          "options": [ 
           "GET" 
          ], 
          "total": 0 
         }, 
         "groups": { 
          "uri": "https://stackoverflow.com/users/61402929/groups", 
          "options": [ 
           "GET" 
          ], 
          "total": 0 
         }, 
         "likes": { 
          "uri": "https://stackoverflow.com/users/61402929/likes", 
          "options": [ 
           "GET" 
          ], 
          "total": 0 
         }, 
         "moderated_channels": { 
          "uri": "https://stackoverflow.com/users/61402929/channels?filter=moderated", 
          "options": [ 
           "GET" 
          ], 
          "total": 0 
         }, 
         "portfolios": { 
          "uri": "https://stackoverflow.com/users/61402929/portfolios", 
          "options": [ 
           "GET" 
          ], 
          "total": 0 
         }, 
         "videos": { 
          "uri": "https://stackoverflow.com/users/61402929/videos", 
          "options": [ 
           "GET" 
          ], 
          "total": 1 
         }, 
         "watchlater": { 
          "uri": "https://stackoverflow.com/users/61402929/watchlater", 
          "options": [ 
           "GET" 
          ], 
          "total": 0 
         }, 
         "shared": { 
          "uri": "https://stackoverflow.com/users/61402929/shared/videos", 
          "options": [ 
           "GET" 
          ], 
          "total": 0 
         }, 
         "pictures": { 
          "uri": "https://stackoverflow.com/users/61402929/pictures", 
          "options": [ 
           "GET", 
           "POST" 
          ], 
          "total": 0 
         }, 
         "watched_videos": { 
          "uri": "/me/watched/videos", 
          "options": [ 
           "GET" 
          ], 
          "total": 0 
         } 
        } 
       }, 
       "preferences": { 
        "videos": { 
         "privacy": "anybody" 
        } 
       }, 
       "content_filter": [ 
        "language", 
        "drugs", 
        "violence", 
        "nudity", 
        "safe", 
        "unrated" 
       ], 
       "resource_key": "6fe192b4cb782d1341fbf3fb3d0ba04a0295236d" 
      }, 
      "app": null, 
      "status": "available", 
      "resource_key": "cad1f2b7d388491329363a4936f0219fa4dfd18b", 
      "embed_presets": null 
     } 
    ] 
} 

但是我只關心領域尋呼,總計和數據陣列的某些字段因此我使用過濾器如下面

https://api.vimeo.com/users/61402929/videos?access_token=token&fields=paging,data.name,data.description,data.link,data.pictures.sizes.link 

但上述呼叫的響應是

{ 
"total": 1, 
"page": 1, 
"per_page": 25, 
"paging": { 
    "next": null, 
    "previous": null, 
    "first": "https://stackoverflow.com/users/61402929/videos?access_token=365879********0902890fc1a1&fields=paging%2Cdata.name%2Cdata.description%2Cdata.link%2Cdata.pictures.sizes.link&page=1", 
    "last": "https://stackoverflow.com/users/61402929/videos?access_token=365879********0902890fc1a1&fields=paging%2Cdata.name%2Cdata.description%2Cdata.link%2Cdata.pictures.sizes.link&page=1" 
}, 
"data": [ 
    [] 
] 

}

編輯:同樣對於呼叫

https://api.vimeo.com/users/61402929/videos?access_token=token&fields=paging 

響應是

{ 
"total": 1, 
"page": 1, 
"per_page": 25, 
"paging": { 
    "next": null, 
    "previous": null, 
    "first": "https://stackoverflow.com/users/61402929/videos?access_token=365879*********70902890fc1a1&fields=paging&page=1", 
    "last": "https://stackoverflow.com/users/61402929/videos?access_token=365879*********70902890fc1a1&fields=paging&page=1" 
}, 
"data": [ 
    [] 
] 

}

我無法弄清爲什麼請求沒有被正確處理。

回答

2

幾件事情:第一,訪問令牌,應在請求的身份驗證標頭中傳遞,而不是在請求URI爲你所提到的:https://developer.vimeo.com/api/authentication#making-requests

至於田野過濾器,過濾器只適用到嵌套在data下的鍵。對於返回多個項目的請求,總是返回paging數組。

所以,你的例子要求應該是這樣的:

https://api.vimeo.com/users/61402929/videos?fields=name,description,link,pictures.sizes.link 

此處瞭解詳情:https://developer.vimeo.com/api/spec#json-filter

希望這有助於!

+0

謝謝!使用field而不是data.field解決了這個問題。然而,在uri而不是頭部發送令牌似乎也行得通。通過頭部發送它有什麼特別的好處? – penguin2048

+1

在標題中發送令牌是官方支持的提供令牌的方法。我認爲舊的API用於在請求uri中支持令牌,並且當新API啓動它時被支持爲遺留問題,但官方認爲該方法的驗證可能隨時中斷。 –