有没有一种方法可以为本地文件生成URL?

时间:2019-05-29 23:57:42

标签: python python-3.x viber

我正在尝试创建一个能够发送一些图片的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,但是一直使用硒来获得“ pin”身份验证是很痛苦的。

这是我的代码:

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)

总结一下: 在图片消息对象PictureMessage(media="image url", text="Some text")中,“媒体”必须是图片的URL(仅支持JPEG)。 您如何将台式机上的图像转换为URL?

1 个答案:

答案 0 :(得分:0)

生成文件URI,例如file:///C:/Users/bob/Desktop/avatar.jpg

如何生成整个路径取决于您希望这些文件位于何处。但这是语法:

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

您应该阅读并注意路径前的三个斜杠,并了解原因(因为它是file://localhost/C:/Users/bob/Desktop/avatar.jpg的简写)。