为了账号安全,请及时绑定邮箱和手机立即绑定

Golang Twitter API - update_profile_banner 图片压缩错误

Golang Twitter API - update_profile_banner 图片压缩错误

Go
慕勒3428872 2023-01-03 14:10:12
我正在尝试使用Twitter API 中的account/update_profile_banner.json更新横幅图像。在查询参数中,据说图像可以以 2 种格式类型发送。作为 base64 或原始数据。当我用 base64 编码我的图像时,我认为它的大小超过了最大 http 长度。以二进制形式发送似乎更不合逻辑,因为它比 base64 更长。Post "https://api.twitter.com/1.1/account/update_profile_banner.json?banner=%2F9j%2F2wCEAA...": http2: server sent GOAWAY and closed the connection; LastStreamID=7, ErrCode=COMPRESSION_ERROR, debug=""我使用的库是dghubble/go-twitter,但我不得不创建一个分支,因为没有更新个人资料横幅的方法。我将以下函数和结构添加到 accounts.go 文件中。type AccountUpdateProfileBannerPhotoParams struct {    Banner string `url:"banner,omitempty"`    Width   int    `url:"width,omitempty"`    Height  int    `url:"height,omitempty"`    OffsetX int    `url:"offset_left,omitempty"`    OffsetY int    `url:"offset_top,omitempty"`}func (s *AccountService) UpdateProfileBannerPhoto(params *AccountUpdateProfileBannerPhotoParams) (*User, *http.Response, error) {    user := new(User)    apiError := new(APIError)    resp, err := s.sling.New().Post("update_profile_banner.json").QueryStruct(params).Receive(user, apiError)    return user, resp, relevantError(err, *apiError)}该UpdateProfileBannerPhoto()函数返回上述错误消息。
查看完整描述

1 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

解决了问题。疏忽!


我了解到Twitter使用media/upload方法,然后通过跟踪网络流量media_id将其发送到account/update_profile_banner方法来更新值。


但这不是必需的。我更新了QueryStruct函数UpdateProfileBannerPhoto中BodyForm的,问题解决了......


固定的:


func (s *AccountService) UpdateProfileBannerPhoto(params *AccountUpdateProfileBannerPhotoParams) (*User, *http.Response, error) {

    user := new(User)

    apiError := new(APIError)

    resp, err := s.sling.New().Post("update_profile_banner.json").BodyForm(params).Receive(user, apiError)

    return user, resp, relevantError(err, *apiError)

}


查看完整回答
反对 回复 2023-01-03
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信