相关疑难解决方法(0)

Google Photos API - 新版本?

我正在编写一个程序来在本地备份我的 Google Photos 库,上周代码工作正常,但在过去几天里,我不断从 API 客户端返回错误,说“photoslibrary v1”不存在在 Google 的 API 库中。文档根本没有改变 - 是谷歌那边有问题还是我有问题?

from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools

class Photos:
def __init__(self):
    self.SCOPE = "https://www.googleapis.com/auth/photoslibrary"
    self.CLIENT_SECRET = "client_id.json"
    self.store = file.Storage("storage.json")
    self.credentials = self.store.get()
    if not self.credentials or self.credentials.invalid:
        self.flow = client.flow_from_clientsecrets("client_id.json", self.SCOPE)
        self.credentials = tools.run_flow(self.flow, self.store)
    self.PHOTOS = discovery.build("photoslibrary", "v1", http=self.credentials.authorize(Http()))

photos = Photos()

googleapiclient.errors.UnknownApiNameOrVersion: name: photoslibrary  version: v1
Run Code Online (Sandbox Code Playgroud)

python oauth-2.0 python-3.x google-photos google-photos-api

7
推荐指数
1
解决办法
2672
查看次数

将媒体项目添加到现有相册时,Google 相册返回“错误 400:请求包含无效的媒体项目 ID。(INVALID_ARGUMENT)”

Google Photo API(使用 Go 和 Google Photo REST API)获取媒体项目列表和相册列表后,将项目添加到相册会返回错误。

(注意:使用 Web 界面将项目添加到相册工作正常)。

将媒体项添加到相册的代码:

func (a Album) AddItems(items ...MediaItem) error {
    rel := &url.URL{Path: fmt.Sprintf("/v1/albums/%s:batchAddMediaItems", a.ID)}
    u := a.service.baseURL.ResolveReference(rel)
    for len(items) > 0 {
        ids := []string{}
        for i := 0; i < 50 && i < len(items); i++ {
            ids = append(ids, items[i].ID)
        }
        items = items[len(ids):]
        toAdd := map[string]interface{}{
            "mediaItemIds": ids,
        }
        bodyData, err := json.Marshal(toAdd)
        if err != nil {
            return err
        }
        req, err := …
Run Code Online (Sandbox Code Playgroud)

rest go google-photos-api

2
推荐指数
1
解决办法
1183
查看次数