· 4 years ago · Jun 15, 2021, 06:14 PM
1let form = document.createElement('form')
2let buttonBox = document.querySelector('.im-chat-input--textarea')
3buttonBox.append(form)
4let inputFile = document.createElement('input')
5inputFile.type = "file"
6inputFile.name = 'file'
7form.append(inputFile)
8let accessToken = prompt('Your api key:')
9let sendButton = document.createElement('input')
10sendButton.type = 'submit'
11sendButton.innerHTML = 'Submit'
12form.append(sendButton)
13let link = ''
14let result = ''
15let file = ''
16let idAudio = ''
17let ownerId = ''
18
19function getRandomIntInclusive(min, max) {
20 min = Math.ceil(min);
21 max = Math.floor(max);
22 return Math.floor(Math.random() * (max - min + 1)) + min; //Максимум и минимум включаются
23 }
24fetch(`https://api.vk.com/method/docs.getUploadServer?access_token=${accessToken}&type=audio_message&v=5.38`)
25.then((resp) =>{
26 return resp.json()
27})
28.then((data) =>{
29 link = data.response.upload_url
30})
31form.onsubmit = async (e) =>{
32 e.preventDefault()
33
34 let response = await fetch(link, {
35 method: 'POST',
36 body: new FormData(form)
37 })
38
39 result = await response.json()
40 console.log(result);
41 fetch(`https://api.vk.com/method/docs.save?file=${result.file}&access_token=${accessToken}&v=5.90`).then((fileLink) =>{
42 return fileLink.json()
43 }).then((resp) => {
44 idAudio = resp.response.audio_message.id
45 ownerId = resp.response.audio_message.owner_id
46 }).then(() =>{
47 getUrl()
48 })
49}
50
51function getUrl() {
52 let url = window.location.href
53 let idUser = ''
54 let i = url.length
55 while(i != 0){
56 console.log(i);
57 if(url[i] == 'c' || url[i] == '='){
58 break
59 }
60 idUser += url[i]
61 i--
62 }
63 idUser = parseInt(idUser.match(/\d+/))
64 idUser = idUser.toString().split('').reverse().join('')
65 if(url.lastIndexOf('=c') != -1){
66 sendMessageInChat(idUser)
67 }if(url.lastIndexOf('=c') == -1){
68 sendMessageToUser(idUser)
69 }
70}
71
72
73sendMessageToUser = (id) =>{
74 texxt = `https://api.vk.com/method/messages.send?access_token=${accessToken}&user_id=${id}&random_id=${getRandomIntInclusive(1, 1000)}&attachment=audio_message${ownerId}_${idAudio}&v=5.131`
75 fetch(texxt)
76
77}
78sendMessageInChat = (id) =>{
79 texxt = `https://api.vk.com/method/messages.send?access_token=${accessToken}&chat_id=${id}&random_id=${getRandomIntInclusive(1, 1000)}&attachment=audio_message${ownerId}_${idAudio}&v=5.131`
80 fetch(texxt)
81}