亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 Go on 應用引擎獲取 youtube 播放列表視頻

如何使用 Go on 應用引擎獲取 youtube 播放列表視頻

Go
函數式編程 2021-12-06 16:55:23
使用 Api 密鑰,我能夠從Api Explorer獲取播放列表中的視頻。在沒有 OAuth的情況下執行獲取結果 json。鏈接在這里。https://developers.google.com/apis-explorer/?hl=en_US#p/youtube/v3/youtube.playlistItems.list?part=snippet&playlistId=PLHyTuYqPkZCzt7mWZ4hmmrRdjLJiw6O2T&_h=2&使用 Go on App 引擎實現相同的調用失敗并出現以下錯誤:獲取 https://www.googleapis.com/youtube/v3/playlistItems?alt=json&part=snippet&playlistId=PLHyTuYqPkZCzt7mWZ4hmmrRdjLJiw6O2T:http.DefaultTransport 和 http.DefaultClient 在 App Engine 中不可用。請參閱 https://cloud.google.com/appengine/docs/go/urlfetch/這是我使用的代碼:import (    "net/http"    "code.google.com/p/google-api-go-client/googleapi/transport"    "code.google.com/p/google-api-go-client/youtube/v3"    "log")    var service *youtube.Service    func init() {        var err error        log.Println("Apikey = ", apiKey)        client := &http.Client{Transport: &transport.APIKey{Key: apiKey}}        service, err = youtube.New(client)        if err != nil {            log.Println("ERROR in creating youtube New client ", err)        }        var items *youtube.PlaylistItemListResponse        if items, err = service.PlaylistItems.List("snippet").PlaylistId("PLHyTuYqPkZCzt7mWZ4hmmrRdjLJiw6O2T").Do(); err != nil {            log.Println("Error in fetching playlist items ", err) //this line shows the error        }        log.Println(Jsonify(items))    }截至目前,我在本地開發服務器上運行我的代碼,即goapp serve有什么不見了?如何使用 v3 api 和 ApiKey 獲取 youtube 播放列表視頻?
查看完整描述

2 回答

?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

不幸的是,鏈接的文檔并沒有完全解釋為什么您的代碼不起作用。在 App Engine 上,您需要使用包http.Transport提供的特殊功能urlfetch;請參閱https://cloud.google.com/appengine/docs/go/urlfetch/

查看完整回答
反對 回復 2021-12-06
?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

找到了解決辦法。下面的代碼為我完成了任務。


func FetchVideos(w http.ResponseWriter, r *http.Request) {

    var service *youtube.Service

    ctx := appengine.NewContext(r)


    transport := &transport.APIKey{

        Key:       apiKey,

        Transport: &urlfetch.Transport{Context: ctx}}

    client := &http.Client{Transport: transport}


    var err error

    service, err = youtube.New(client)

    if err != nil {

        log.Println("ERROR in creating youtube New client ", err)

    }

    var items *youtube.PlaylistItemListResponse

    if items, err = service.PlaylistItems.List("snippet").PlaylistId("PLHyTuYqPkZCzt7mWZ4hmmrRdjLJiw6O2T").Do(); err != nil {

        log.Println("Error in fetching playlist items ", err)

    }

    log.Println(Jsonify(items))


查看完整回答
反對 回復 2021-12-06
  • 2 回答
  • 0 關注
  • 217 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號