Есть ли способ генерировать URL для локальных файлов? - PullRequest
1 голос
/ 30 мая 2019

Я пытаюсь создать чат-бота Viber, который может отправлять несколько картинок.Мне необходимо отправить URL-адрес изображения в качестве параметра, но изображения, которые я хочу отправить, находятся на моем рабочем столе, и я не знаю, как получить их URL-адреса.

Я пытался использовать запросы:

image = {  "media": open('test_image.jpg', 'rb')}

jason = { 
  "auth_token": "my token",
  "receiver": "my chat id", 
  "type": "picture", 
  "text": "some text", 
}

requests.post("https://chatapi.viber.com/pa/send_message", json=image, file=image)

Я также пытался использовать imgur API, но мне все равно тяжело получать "пин-код" аутентификацию с использованием селена.

Вот мой код:

from viberbot import Api
from viberbot.api.bot_configuration import BotConfiguration

from viberbot.api.messages.picture_message import PictureMessage
from viberbot.api.viber_requests import ViberMessageRequest

from flask import Flask, request, Response

app = Flask(__name__)

bot_configuration = BotConfiguration(
    name='name',
    avatar='http://viber.com/avatar.jpg',
    auth_token='token'
)
viber = Api(bot_configuration)

@app.route('/', methods=['POST'])
def index():
  viber_request = viber.parse_request(request.get_data())

  if isinstance(viber_request, ViberMessageRequest):
    message = viber_request.message

    if message.text == "/pic":

      viber.send_messages(viber_request.sender.id, [
        PictureMessage(media="image url", text="Some text")
        ])

  return Response(status=200)



if __name__ == '__main__':
  app.run(debug=True)

Подвести итогup: В сообщении объекта изображения PictureMessage(media="image url", text="Some text") "media" должен быть URL изображения (поддерживается только JPEG).Как бы вы превратили изображения на рабочем столе в URL-адреса?

1 Ответ

0 голосов
/ 30 мая 2019

Создайте файловый URI, например file:///C:/Users/bob/Desktop/avatar.jpg.

Способ создания всего пути зависит от того, где вы ожидаете, что эти файлы будут.Но это синтаксис:

https://en.wikipedia.org/wiki/File_URI_scheme

Вы должны прочитать его, отметить 3 слеша перед путем и понять, почему (потому что это сокращение для file://localhost/C:/Users/bob/Desktop/avatar.jpg).

...