当我尝试更新联系人以在 Google People API 中添加照片时,为什么总是出现 [400] 照片格式无效错误?

发布于 2025-01-16 15:15:37 字数 1424 浏览 4 评论 0原文

当尝试更新 Google People API 中的联系人以添加个人资料图片 (/v1/people/{{RessourceName}}/:updateContactPhoto PATCH) 时,我不断收到 400 错误:照片格式无效。 你知道我做错了什么或者这个错误消息到底意味着什么吗?

这是请求正文的示例:

{
    "photoBytes": "aHR0cHM6Ly9zMy51cy13ZXN0LTIuYW1hem9uYXdzLmNvbS9zZWN1cmUubm90aW9uLXN0YXRpYy5jb20vN2ZkNmY2YzMtZDM1Yi00YTUzLTkyMTItYjA5Y2JmMWE1NjBjL3RsY2hhcmdlbWVudC5qcGc/WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ29udGVudC1TaGEyNTY9VU5TSUdORUQtUEFZTE9BRCZYLUFtei1DcmVkZW50aWFsPUFLSUFUNzNMMkc0NUVJUFQzWDQ1JTJGMjAyMjAzMjIlMkZ1cy13ZXN0LTIlMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjIwMzIyVDE4MTIxMlomWC1BbXotRXhwaXJlcz0zNjAwJlgtQW16LVNpZ25hdHVyZT04ZGU4OGI2ZTU0NGQ2NTRjNGE0ODhhOTljMTljZjcxNDEyOTk5OWQ2NGQ3YzgwYmZkY2Y1ODYyNDcwMmQxNzFjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZ4LWlkPUdldE9iamVjdA==",
    "personFields": "addresses,ageRanges,biographies,birthdays,calendarUrls,clientData,coverPhotos,emailAddresses,events,externalIds,genders,imClients,interests,locales,locations,memberships,metadata,miscKeywords,names,nicknames,occupations,organizations,phoneNumbers,photos,relations,sipAddresses,skills,urls,userDefined,fileAses"
}

我已经尝试了内容类型“multipart/form-data”和“application/json”,但我没有改变任何东西。

这是我一直拥有的典型回复体,但我不知道如何解释它:

{
    "error": {
        "code": 400,
        "message": "Invalid photo format",
        "status": "INVALID_ARGUMENT"
    }
}

您能帮我解决这个问题吗?

When trying to update a contact in Google People API to add a profile image (/v1/people/{{RessourceName}}/:updateContactPhoto PATCH), I keep having a 400 error: Invalid photo format. Do you have any idea what am I doing wrong or what exactly this error message could mean ?

Here is an example of the request body:

{
    "photoBytes": "aHR0cHM6Ly9zMy51cy13ZXN0LTIuYW1hem9uYXdzLmNvbS9zZWN1cmUubm90aW9uLXN0YXRpYy5jb20vN2ZkNmY2YzMtZDM1Yi00YTUzLTkyMTItYjA5Y2JmMWE1NjBjL3RsY2hhcmdlbWVudC5qcGc/WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ29udGVudC1TaGEyNTY9VU5TSUdORUQtUEFZTE9BRCZYLUFtei1DcmVkZW50aWFsPUFLSUFUNzNMMkc0NUVJUFQzWDQ1JTJGMjAyMjAzMjIlMkZ1cy13ZXN0LTIlMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjIwMzIyVDE4MTIxMlomWC1BbXotRXhwaXJlcz0zNjAwJlgtQW16LVNpZ25hdHVyZT04ZGU4OGI2ZTU0NGQ2NTRjNGE0ODhhOTljMTljZjcxNDEyOTk5OWQ2NGQ3YzgwYmZkY2Y1ODYyNDcwMmQxNzFjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZ4LWlkPUdldE9iamVjdA==",
    "personFields": "addresses,ageRanges,biographies,birthdays,calendarUrls,clientData,coverPhotos,emailAddresses,events,externalIds,genders,imClients,interests,locales,locations,memberships,metadata,miscKeywords,names,nicknames,occupations,organizations,phoneNumbers,photos,relations,sipAddresses,skills,urls,userDefined,fileAses"
}

I have tried both with content-type "multipart/form-data" and "application/json" but I does not change anything.

This is a typical response body I keep having but I do not know how to interpret it:

{
    "error": {
        "code": 400,
        "message": "Invalid photo format",
        "status": "INVALID_ARGUMENT"
    }
}

Can you please help me into solving this issue, please ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

白芷 2025-01-23 15:15:37

解码您的 photoBytes base64 值会产生以下开头的网址:
https://s3.us-west-2.amazonaws.com/ (该网址返回“AccessDenied”,但这不是问题)

您不应该发送照片的网址,而应发送实际的照片如文档所述,原始照片字节。

尝试发送此示例:

{
    "photoBytes": "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",
    "personFields": "addresses,ageRanges,biographies,birthdays,calendarUrls,clientData,coverPhotos,emailAddresses,events,externalIds,genders,imClients,interests,locales,locations,memberships,metadata,miscKeywords,names,nicknames,occupations,organizations,phoneNumbers,photos,relations,sipAddresses,skills,urls,userDefined,fileAses"
}

Decoding your photoBytes base64 value results in a url that starts with:
https://s3.us-west-2.amazonaws.com/ (and that url returns "AccessDenied" but that's not the issue)

You should not be sending a url to a photo but the actual raw photo bytes as the documentation states.

Try sending this as an example:

{
    "photoBytes": "/9j/4AAQSkZJRgABAQAASABIAAD/4QCMRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABIAAAAAQAAAEgAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAAJagAwAEAAAAAQAAAFQAAAAA/+0AOFBob3Rvc2hvcCAzLjAAOEJJTQQEAAAAAAAAOEJJTQQlAAAAAAAQ1B2M2Y8AsgTpgAmY7PhCfv/AABEIAFQAlgMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2wBDAAkGBxASEhIQEhAQDxAPEBAQDw8QDw8PDw8PFREWFhURFRUYHSggGBolGxUVITEhJSkrLi4uFx8zODMtNygtLiv/2wBDAQoKCg4NDhcQDxcrHRcdKystLS0tLSstKy0tKy0rLSstKy0rLS0tKy0tLSsrLS0tKystKy0rNystLS4tNzcrNyv/3QAEAAr/2gAMAwEAAhEDEQA/AOr2UIlOIoFemShJMfSlijzRUsWcH6VDHciiXr0qRx7gcUyMf5+lJcMD0qWikyBl3HimSQVNEuTUjA+mM+9QyjPlixVadsDIA465IAA9cmtWccckfTGTWBrrEQuB1YBe3QnnrWFZtQbRrSV5JHO695kpwOSOOMY6dqyUsZwf9W3AxwOa1Q4XAx0HYj+taUF0uAd2MnHPHPpXHCn3ep1y12M7w5cPHKqtkB/lIIxwen6125WuYkjDTwHvu6juBzXUoQa6qKaujmq7karkmmkYNPj+9+dJKefStzEUUuaYTQDTsQ0SUZpu6jdRYzuf/9Dr2WjbSipok9a9G5CIREaQHGfcYq2Md/51UkGDSKGE0ixHqelPC5qbcB+WPpUtlIpMCKlaTABznj070s4zyPSqrGoZQkrk1iarIySRk8xdwQMbvf8Az2rejTuePT6+9Q323Y/HRSent1rGqrqxvRnyyva5xt1J8zHaOSeg6fSprSEFNrKQM5yeBn8Kqzx7uAT14wdpq7ZwMvVmOcAIxVgPfIFc0Tq6GjpUC7ycZKp8p9Mnn8cYrU5B9DS2luEHHJPX1zUsy5ArphojkqNN6EQfnNCgk02p7de/T0960TMmRlaSrZUH2qsy0EsQUUUUzI//0eyiA71N5S9/51VWrDEd/wD61d9yUDqg/wD11Vc+nSnyPmosUmxokWAnHPWmtAfWrGP096aV6cn8zUNloqvERnkce1Vie1W7noevXHU1g6hq0cP3mG4du/tUSkluWlc1Gix/F+fFUryZQjHdkYxxkjmuJ1bxRLKcKSqfqa09KuC1oWY5O8jJ9Rj/ABrmlVu7I0jZDZoVGMSbuR0VlP61ctVBKqCW3HHJ596olSwwo3NkdPxrVgRbeJppDllU/T2UfjTjHU1VVct3uU9N8T4YwzZbDsqSAjJAJADep461vQalC/SQf8CJWvK7mQsxbuSTx2JOalS8bb97BHHXr70vaWfkc6ae56vjuCCPUHIqRP8AeOfSvL7PWJ4/uOV/X9K7nQNRM8Qdsb1JR8DAJHIP4g1tCXMJ26G4EP8AeNI0ee+cUyM574IomJrQhjKKbRmgyaP/0utY0hc06U0xVz1rsuTYCvGen9aSLqKkmYYxUcHc+1S2NEx+nemsfb9aQkVG5FRctENw3HTHPrXl/iSXNzL3AcD8lFemT9q8y8Ux7bmUerBvzUGsKzfKX0Mk1qaPfyArEGxGWJI6cnHfBNZQNWdPfEiHkDcM43evtzXOtybs7LVXMTKBMVBQHDvEpz3PzL/WsjXdQeSMA8qCMHELAn1yrHB/CrmpX4ZhhtgCgENMY8Hr0Kkd+tYupSArncG5677d/wBVAatnLsy2ZDGrcFjujMm7lT93HVRjJz+NZ+6tnRAGV1OcHg+wKkcVlfUKSUpWZQ3en4e9dv4FjbypGP3WcbffC8n+n4VlXEMcVvtEe8PjLtg4YdCPSup8MKRbRAkHKkjHQAsSB9a3pu7B0+R6mgDg053zSutNAroIYbaMVOq0uz/OKDM//9PqWfPNTRyDGPTrVWpYDz1xxXU2JBcOCe3FMQDHfk1GxyfxqVoh7/nUtjEYc9T+dRkcdT+dDRjnr+ZphT3NS2Whrj+VebeLwftUuf8AYx9Nor0o15145x9oPqY0z+tY1fhKvoc/mnQPhlP+0vcjuO45qPNKh5H1H865iLnTzT4Y/MF573Ekfb0Klap3z7lPz7v+21u4/PANTySEE8tjP/PSdAP/AB0rVeeVW6srY9ZIGx+JANW2anPN1roPDUBI3KwOW5U9QQf14NY18oySpUj0Vg2PyJqG0umjYMpI55+lZ31JpyUJXZ2PiAbY8AdXAODwR1/CneC9TKyeSSdkmSoP8Mg9PqK5251J2ChiNuecDr+NLBKUYOvDKdwPuOldFOVx1Zpyuj1nFIRUdpNvRX67lDcdORmpsV0mcmLRj3NJRTMz/9TqXX5foKrg1Zb7v4Cq1dADo+o+tOaQ5psfUfWg9aQ+oFuKa1KelIakY0ivNfHRxdEf9M4/616Wa8z8d/8AH0f+ucf9ayrfCV0MFDxT4vvD6j+YqNOlSRfeH1H8xXIQbbycsMH7x5Dyj9A2KsiM7c73/wC+if51Tf7zf7xrQH3T+FaGqMPUx7k/U1jzDBrZ1P8Ax/lWNcdagiZLCxIwTwDkVpMc9gOB0rLtv61pf4VrS3M+h6npsISNFXoqKBk5PSrQqG1+6v8Aur/KphXYUxRS0gpaRB//2Q==",
    "personFields": "addresses,ageRanges,biographies,birthdays,calendarUrls,clientData,coverPhotos,emailAddresses,events,externalIds,genders,imClients,interests,locales,locations,memberships,metadata,miscKeywords,names,nicknames,occupations,organizations,phoneNumbers,photos,relations,sipAddresses,skills,urls,userDefined,fileAses"
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文