Получили код ошибки 503 при получении mediaid в wechat? - PullRequest
0 голосов
/ 05 марта 2019

API http://admin.wechat.com/wiki/index.php?title=Transferring_Multimedia_Files

import requests
r='https://api.wechat.com/cgi-bin/token?grant_type=client_credential&appid=wx82c6ebdb6e33ad33&secret=c2861ec348b3c94087c4b64cbe166fbb' #credentials sharing no problem
a=(requests.get(r).json()['access_token'])
print(a)
params = (
    ('access_token', a),
    ('type', 'image'),
)

import os
files = {
    'media': ('1.jpg', open('static/1.jpg', 'rb'),'image/jpg',),
}
print()
response = requests.post('http://file.api.wechat.com/cgi-bin/media/upload', params=params, files=files)

def uprint(x,file=None):
  try:
    pass
    if x:
      print(x.encode('cp65001',errors='backslashreplace').decode('cp1252'),file=file)
  except Exception as e:
    return f'{x}\n{e}'
def prin(*a):print(ascii(*a))    
print(response.text,file=open('z.html','a',encoding="utf-8"))
print(response.headers)

1 Ответ

0 голосов
/ 05 марта 2019

Похоже, вы используете http для вызова загрузки.Я видел эту ошибку, возвращенную с сайтов по этой причине ранее.

Ошибка HTTP 503 означает «Служба недоступна».Обычно он возвращается сервером, когда он не может обработать запрос из-за временной перегрузки или обслуживания сервера.

После проверки документации API для wechat я заметил следующее:

Этот API должен использоваться через HTTPS.

И затем я заметил это в Q & A :

В: На какой сервер я должен отправлять запросы API?

A: Если у вас есть международная официальная учетная запись, используйте api.wechat.com .

Если у вас есть официальный аккаунт в Китае, используйте api.weixin.qq.com .

Итак, в вашем случае, я думаю, вам нужно использовать https и домен api.wechat.com, вот так:

response = requests.post('https://api.wechat.com/cgi-bin/media/upload', params=params, files=files)
...