Как я могу сделать запрос на веб-сайт, чтобы получить фотографии собак для моего бота? - PullRequest
0 голосов
/ 29 марта 2020

Я делаю команду, которая запрашивает фотографии собак. Пока что мой код странный, так как я не до конца понимаю запросы HTTP. Может кто-нибудь направить меня в правильном направлении?

const request = require('request');

    request.get('https://cdn.pixabay.com/photo/2016/11/26/23/45/dog-1861839__340.jpg', {

    }, function(error, response, body) {
        if(!error && response.statusCode == 200) {
            message.channel.send(response.request.uri.href);
        } else {
            console.log(error);
        }
    })

Спасибо заранее

ps: пытается запросить у https://pixabay.com/images/search/dog/ эту ссылку

Ответы [ 2 ]

3 голосов
/ 29 марта 2020

Если у вас уже есть ссылка на изображение, вам не нужно делать HTTP-запрос. Вам нужно только показать изображение в сообщении для встраивания.

const Discord = require("discord.js");

var embed = new Discord.RichEmbed()
.setTitle("Dog picture")
.setDescription("Here is a picture of a dog")
.setImage("https://cdn.pixabay.com/photo/2016/11/26/23/45/dog-1861839__340.jpg")
message.channel.send(embed)

Если вы не хотите использовать встраивание, вы все равно можете опубликовать изображение только с помощью простого сообщения.

message.channel.send("Here is a picture of a dog!", {
    file: "https://cdn.pixabay.com/photo/2016/11/26/23/45/dog-1861839__340.jpg" // Or replace with FileOptions object
});

Редактировать:

Если вы хотите получить случайную картинку с собакой, найдите веб-API. Я нашел этот один. Итак, теперь вы помещаете ссылку на конечную точку в свой запрос и анализируете результат.

const request = require('request');
//Send the request to the API website.
request.get('https://dog.ceo/api/breeds/image/random', {

}, function(error, response, body) {
    if(!error && response.statusCode == 200) {
      var parsedData = JSON.parse(body); //Parse the json data.
      var embed = new Discord.RichEmbed()
      .setTitle("Dog picture")
      .setDescription("Here is a picture of a dog")
      .setImage(parsedData.message)
      .setColor("AQUA")
      message.channel.send(embed);
    } else {
        console.log(error);
    }
})
1 голос
/ 29 марта 2020

Использование https://www.npmjs.com/package/pixabay-api

var pixabay = require("pixabay-api")
var Discord = require("discord.js")
var key = "your api key"//get key here: https://pixabay.com/api/docs/#api_search_images

с звонком:

pixabay.searchImages(key, 'puppy').then((r) => {
       //create embed
        message.reply(new Discord.MessageEmbed()
            .setTitle("Random Puppy")
            //get random puppy image from response
            .setImage(r.hits[Math.floor(Math.random() * r.hits.length)].largeImageURL))
})

asyn c:

var r = await pixabay.searchImages(key, 'puppy')
message.reply(new Discord.MessageEmbed()
     .setTitle("Random Puppy")
     .setImage(r.hits[Math.floor(Math.random() * r.hits.length)].largeImageURL))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...