Whatsapp Cloud API 更新头像

Whatsapp Cloud API Update Profile Picture

我正在尝试使用 WhatsApp Cloud 上传图片作为个人资料图片 API *.

After creating an application using WhatsApp Cloud API I'm not allowed to access neither using the regular application nor using Business Application. It says something like "try again in one hour". So I have to implement everything using the API.

阅读文档并导入后 Postman Endpoints 我找到了一个名为 业务配置文件 > 更新业务配置文件

https://graph.facebook.com/{{Version}}/{{Phone-Number-ID}}/whatsapp_business_profile

它有一个字段 "profile_picture_url",我已经尝试过发布媒体 https://graph.facebook.com/{{Version}}/{{Phone-Number-ID}}/media 然后使用给定的 ID y 使用 https://graph.facebook.com/{{Version}}/{{Media-ID}} 来获取 URL 但它没有不工作。其余信息更新成功

{
    "messaging_product": "whatsapp",
    "address": "",
    "description": "Simple Bot",
    "email": "...@gmail.com",
    "websites": [
        "https://..."
    ],
    "profile_picture_url": "https://lookaside.fbsbx.com/..."
}

但是,如果我尝试使用 ID 和端点 https://graph.facebook.com/{{Version}}/{{Phone-Number-ID}}/messages 发送某人,它工作正常。 如果我在 Postman 中使用 Download Media Content 和 URL,它也可以正常工作。

不知道是不是我理解错了,还是用 API.

做不到

Cloud API Documentation中提到:

profile_picture_url (Optional): URL of the profile picture generated from a call to the Resumable Upload API.

但是,我使用 profile_picture_handle 而不是 profile_picture_url 让它工作。那么我们如何获得profile_picture_handle?

先决条件:

  1. 图 API 代币 here。或者使用您的 WhatsApp Cloud API 令牌。
  2. 应用程序 ID,转到 Apps > 您的应用程序 > 设置(侧边栏菜单)> 基本

更新照片资料:

  1. 致电POST https://graph.facebook.com/v14.0/{{appId}}/uploads?access_token={{token}}&file_length={{fileSizeInByte}}&file_type=image/jpeg
  2. 保存你得到的session ID,upload:XXXXXX?sig=XXXXXX
  3. 调用 POST https://graph.facebook.com/v14.0/{{sessionId}},使用 headers: Authorization=OAuth {{token}}, file_offset=0, Host=graph.facebook.com, Connection=close, Content-Type=multipart/form-data,并将您的图像文件包含在请求 body 中,类型为二进制文件。如果您使用 Postman,请参见下图(这是我错过了几个小时的内容)。
  4. 保存得到的句柄结果,4::XXX==:XXXXXX
  5. 最后,调用 POST https://graph.facebook.com/{{Version}}/{{Phone-Number-ID}}/whatsapp_business_profile,使用 json 请求 body:{"messaging_product": "whatsapp", "profile_picture_handle": "4::XXX==:XXXXXX"}

就是这样,您可以查看头像。