使用Facebook Graph API创建WhatsApp图片模板遇格式错误求助
解决WhatsApp图片模板创建时的「文件格式不支持」错误
根据你提供的操作步骤,问题大概率出在步骤2的上传请求参数格式错误,以及部分细节不符合API要求,以下是具体修正方案:
核心问题分析
- URL参数分隔符错误:步骤2的请求URL中,
sig和access_token之间用了?,正确应该用&,否则access_token无法被正确解析,导致上传的文件无法被验证类型。 - 文件上传的Content-Type设置:虽然指定了
multipart/form-data,但建议直接匹配文件的MIME类型(如image/png),避免multipart解析异常。 - file_length准确性:确保步骤1中填写的
file_length和实际文件字节数完全一致,否则会导致文件上传不完整,服务器无法识别格式。
修正后的完整步骤
步骤1:获取上传密钥(确认file_length正确)
确认file_length是文件的实际字节数(可通过文件属性查看),原请求格式没问题:
curl --location --request POST 'https://graph.facebook.com/v14.0/727242995025717/uploads' \ --header 'Authorization: Bearer EAAKVbHRiRzUBAG1HujesBvBuA2ZBbrZAhXuc8aJQVoWhW6IdPeRihH9akMZAyDha5olS4hSXQPSuBZBRVgJA93JLmLQhe0Lz9pXUrxIRXLDzdkwqsReK2UyZBr1YXEMcFYgQUBOlowHlFlWqtXWdJPCGAres7eXtnsqd6nOU4Rqg6B2ZB9e0CnsbOqYhLuZAc70SmtbdjNkagZDZD' \ --header 'Content-Type: text/plain' \ --data-raw '{ "file_length":"28506", "file_type":"image/png", "file_name":"test.png" }'
步骤2:修正文件上传请求
重点修正URL参数分隔符,调整Content-Type匹配文件类型:
curl --location --request POST 'https://graph.facebook.com/v14.0/upload:MTphdHRhY2htZW50OjgyZWRlNDZhLTA0M2EtNGFkNy04NjNiLTQyNjU0OTAwM2Q4Nj8=?sig=ARYAKCBkBmYa7BkcY_s&access_token=EAAKVbHRiRzUBAG1HujesBvBuA2ZBbrZAhXuc8aJQVoWhW6IdPeRihH9akMZAyDha5olS4hSXQPSuBZBRVgJA93JLmLQhe0Lz9pXUrxIRXLDzdkwqsReK2UyZBr1YXEMcFYgQUBOlowHlFlWqtXWdJPCGAres7eXtnsqd6nOU4Rqg6B2ZB9e0CnsbOqYhLuZAc70SmtbdjNkagZDZD' \ --header 'file_offset: 0' \ --header 'Content-Type: image/png' \ --data-binary '@test.png'
说明:如果是JPG文件,Content-Type改为
image/jpeg
步骤3:创建模板(确认hash值正确)
确保传入的header_handle是步骤2返回的完整h字段值,原请求格式没问题:
curl --location --request POST 'https://graph.facebook.com/v14.0/106148522171805/message_templates' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer EAAKVbHRiRzUBAG1HujesBvBuA2ZBbrZAhXuc8aJQVoWhW6IdPeRihH9akMZAyDha5olS4hSXQPSuBZBRVgJA93JLmLQhe0Lz9pXUrxIRXLDzdkwqsReK2UyZBr1YXEMcFYgQUBOlowHlFlWqtXWdJPCGAres7eXtnsqd6nOU4Rqg6B2ZB9e0CnsbOqYhLuZAc70SmtbdjNkagZDZD' \ --data-raw '{ "name":"template_cliente_importante", "components":[ { "type":"HEADER", "format":"IMAGE", "example":{ "header_handle":[ "4:::ARabORl_4eDXWscbjQetu1TN8GWM8042aW6S4gWtDd6wfc0ghJOBiFIdo0iqmQLJTkRr2etuf-U_SfKOSFbNwb-jKvpCR0MEC8hxmkRRHCUq8Q:e:1663677758:727242995025717:100043883327420:ARaa_5q1W1tBJ79gzzk" ] } }, { "type":"BODY", "text":"Obrigado por seu contato. Em breve iremos retornar sua solicitacao" }, { "type":"FOOTER", "text":"Até logo!" } ], "language":"pt_BR", "category":"TRANSACTIONAL" }'
额外验证点
- 确保图片文件没有损坏:用图片查看器打开确认正常。
- 检查API版本:v14.0是支持的,若仍有问题可尝试升级到较新的稳定版本(如v18.0)。
- 确认权限:你的access_token需要拥有
whatsapp_business_management权限,且应用已通过审核。
内容的提问来源于stack exchange,提问作者Jonathas Knoth
相关产品推荐
相关产品推荐

