Произошла ошибка при обращении к api социальной сети photos create album вормикс

photos.createAlbum — rest api

Создает новый фотоальбом.

Для вызова функции требуется привилегия photos. Вы можете создать фотоальбом без запроса привилегий с помощью функции photos.createAlbumjs.

Параметры

Имя Тип Описание
aid string aid создаваемого альбома (будет частью url’а); обязательный параметр
title string название альбома; обязательный параметр
description string описание альбома
privacy int режим доступа к альбому, описание возможных вариантов см. ниже; по-умолчанию 2
password string пароль для доступа к альбому, указывается при значении privacy=3; кодировка UTF-8

Параметр aid задает желаемый aid альбома. Если альбом с таким aid уже есть, то новый альбом будет иметь случайный aid. Всегда проверяйте результат, возвращаемый функцией, для определения aid нового альбома.

Варианты уровней доступа для параметра privacy:

  • 0 — доступно только создателю
  • 2 — доступно всем
  • 3 — доступно по паролю; в этом случае параметр password становится обязательным
  • 4 — доступно только друзьям
  • 5 — доступно только лучшим друзьям
  • 6 — доступно только друзьям с блогов

Обратите внимание, что из API доступны только альбомы, открытые для всех.

Результат

Возвращает объект созданного альбома в формате, аналогичном photos.getAlbumsrest.

Коды ошибок

Код Описание
1 Unknown error: Please resubmit the request.
2 Unknown method called.
3 Service Unavailable. Please try again later.
4 Method is deprecated.
100 One of the parameters specified is missing or invalid.
102 User authorization failed: the session key or uid is incorrect.
103 Application lookup failed: the application id is not correct.
104 Incorrect signature.
105 Application is not installed for this user.
200 Permission error: the application does not have permission to perform this action.

Пример вызова

http://www.appsmail.ru/platform/api?method=photos.createAlbum&
app_id=123456&session_key=551fd0e4779e35859dfccd03397dc8a0&
sig=95a393ed7639184a52f7a17b6771a92&aid=my_album&title=my%20album&
permissions=3&password=qwerty

См. также

  • photos.getrest
  • photos.getAlbumsrest
  • photos.uploadrest
  • photos.createAlbumjs
  • photos.getjs
  • photos.getAlbumsjs
  • photos.uploadjs
  • photos.uploadAvatarjs

3 / 3 / 2

Регистрация: 18.02.2017

Сообщений: 39

1

17.12.2017, 20:10. Показов 1951. Ответов 0


Здравствуйте, есть инструмент, позволяющий интегрировать в него недвижимость с разных сайтов таких как booking.com airbnb и т.д.
https://realtycalendar.ru
у этого сервиса есть api с такой документацией
https://docs.google.com/docume… 4vkkE/edit
я пытаюсь получить список всех броней на этом сервисе, но в ответ возвращается 404 ошибка. И прежде чем писать в саппорт, хотелось бы убедиться что это не я налажал с конструированием запроса.
дело в том что для того чтобы запросить список забронированных квартир нужно послать пост запрос с тремя параметрами
begin_date: yyyy-mm-dd
end_date: yyyy-mm-dd
sign:
подпись делается судя по доке из md5 хэша параметров в алфавитном порядке и приватного клуча
то есть типа
sign: md5(‘begin_date=yyyy-mm-ddend_date=yyyy-mm-ddPRIVATE_KEY’)
вот мой код возвращающий 404

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import requests
import hashlib
 
KEYS = {
    'public': '3bc48ca2dd73e6eb8aa42a458ad3dabb',
    'private': '40fac5841bd7d67740e61ff36cd166ad',
}
 
 
def get_sorted_keys(obj):
    """
    sort object keys alphabetically
 
    :param dict obj: dict object
    :return: alphabetically sorted array of obj keys
    """
    return sorted(list(obj.keys()))
 
 
def generate_data_string(obj, private_key):
    """
    generate string for api call from object and private key
    :param dict obj: dict object with interesting fields like begin_date
    :param str private_key: string with private key
    :return str: string for sign
    example:
    generate_data_string({atest1: '1', btest2: '2'}, blabla)
    =>
    atest1=1btest2=2blabla
    """
    sorted_obj_keys = get_sorted_keys(obj)
    string = ''
    for key in sorted_obj_keys:
        string += '{key}={value}'.format(key=key, value=obj[key])
    return string + private_key
 
 
def generate_md5(string):
    """
    generate md5 string for sign
    :param str string:
    :return: md5 string
    """
    return hashlib.md5(string.encode('utf-8')).hexdigest()
 
 
data = {
    'begin_date': '2017-11-16',
    'end_date': '2017-12-20',
}
 
print(generate_data_string(data, KEYS['private']))
# => begin_date=2017-11-16end_date=2017-12-2040fac5841bd7d67740e61ff36cd166ad
print(generate_md5(generate_data_string(data, KEYS['private'])))
# => a6c37ca03653e11bc98f8520fdae91b8
 
sign = generate_md5(generate_data_string(data, KEYS['private']))
data['sign'] = sign
 
print(data)
# => {'end_date': '2017-12-20', 'sign': 'a6c37ca03653e11bc98f8520fdae91b8', 'begin_date': '2017-11-16'}
 
req_url = 'https://realtycalendar.ru/api/v1/bookings/{}'.format(KEYS['public'])
print(req_url)
# => https://realtycalendar.ru/api/v1/bookings/3bc48ca2dd73e6eb8aa42a458ad3dabb
 
response = requests.post(url=req_url, data=data)
 
# Информация о запросе
print(response.request.body, response.request.url, response.request.method)
# => sign=a6c37ca03653e11bc98f8520fdae91b8&begin_date=2017-11-16&end_date=2017-12-20 https://realtycalendar.ru/api/v1/bookings/3bc48ca2dd73e6eb8aa42a458ad3dabb POST
 
 
 
print(response.status_code)
# => 404
# в коде ответа значится 404 'Страница не найдена'

если у кого есть время глянуть буду благодарен.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

#1

JuniorQaEngineer

    Новый участник

  • Members
  • Pip

  • 6 сообщений
  • ФИО:Власов Денис Александрович

Отправлено 16 мая 2019 — 09:12

Здравствуйте, выполняю тестовое задание, нужно автоматизировать в Postman любой открытый api перепробовал уже несколько сайтов, youtube, worldweatheronline.com, везде итог одинаковый, самый простой запрос, который написан в документации в примере, проходит, работает, как только пытаюсь составить какой-нибудь свой из списка представленных методов на этом сайте, получаю ответ типа авторизация не проходит или как с примером vk (запрос не моет быть выполнен)
 

До этого с API дел никогда не имел, копаюсь 2-ой день.
 

Сейчас экспериментирую с vk.com, думал, что с документацией на русском станет все понятно, а итог тот же ))

Синтаксис запроса: https://vk.com/dev.p…od=api_requests  
если делать по примеру по ссылке, то все получается:

444.png

Но если беру другой метод, к примеру search.getHints

получается такой результат:

5555.png

сам запрос: https://api.vk.com/m…etHints?v=5.52{{token}}&item_id=544801554_1&q=Запрос&offset=5&limit=10&filters=correspondents&search_global=0

Токен у меня с доступом пользователя, получал через Standalone приложение по этому видео

Такая же история с YouTube — ом, но там несколько простых запросов проходит два или три, а с остальными тоже пишет, что не авторизовался.

  • 0

  • Наверх

#2

BadMF

Отправлено 16 мая 2019 — 10:54

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

  • 0

  • Наверх

#3

JuniorQaEngineer

JuniorQaEngineer

    Новый участник

  • Members
  • Pip

  • 6 сообщений
  • ФИО:Власов Денис Александрович

Отправлено 16 мая 2019 — 11:28

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

в методе написано, нужен доступ к друзьям и подпискам.

в вк есть такая настройска и изменить ее нельзя, нажав на «всех рузей» можно только скрыть выбранных друзей и все)

image.png

Токен и вправду был не со всеми правами, сейчас отредактировал, прaва все, но доступа все так же нет :(

  • 0

  • Наверх

#4

JuniorQaEngineer

JuniorQaEngineer

    Новый участник

  • Members
  • Pip

  • 6 сообщений
  • ФИО:Власов Денис Александрович

Отправлено 16 мая 2019 — 12:22

Все получилось, опечатка была!

  • 0

  • Наверх

Содержание:

  • Общие сведения
  • Формат ошибок
    • Формат ответа методов API в случае ошибок
      • Структура ответа
      • Описание параметров
  • Описание общих ошибок API

Общие сведения

В документе описан формат ошибок методов API, а также приведен перечень общих ошибок, которые могут возникать при обращении к методам API.

Формат ошибок

Формат ответа методов API в случае ошибок

Структура ответа

  • JSON
  • XML
{  
   "metadata":{  
      "status":400,
      "detail":"abc",
      "generated_at":"2015-06-18 12:37:28"
   },
   "errors":[  
      {  
         "code":281016,
         "title":"ошибка упрощённой отправки",
         "detail":"контрагент с минимальным набором данных не может быть отправителем по заказу",
         "link":"https://dev.dellin.ru/api/ordering/request/#error_281016",
         "fields":["receiver"]
      },
      {  
         "code":281017,
         "title":"Недопустимое значение параметра",
         "detail":"Данный параметр может содержать только значения из списка доступных значений",
         "link":"https://dev.dellin.ru/api/ordering/request/#error_281017",
         "fields":["requester"],
         "validValues":[1, 2, 3]
      },
      {  
         "code":117004,
         "title":"значение не найдено в справочнике",
         "detail":"необходимо выбрать значение из соответствующего справочника",
         "link":"https://dev.dellin.ru/calculation/pickup/#error_117004",
         "fields":["requester"],
         "badValues":["0xa77fcf6a449164ed490133777a68bd00"]
      }
   ]
}
<response>
   <metadata>
      <status>400</status>
      <detail>abc</detail>
      <generated_at>2015-06-18 12:37:28</generated_at>
   </metadata>
   <errors>
      <code>281016</code>
      <title>ошибка упрощённой отправки</title>
      <detail>контрагент с минимальным набором данных не может быть отправителем по заказу</detail>
      <link>https://dev.dellin.ru/api/ordering/request/#error_281016</link>
      <fields>receiver</fields>
   </errors>
   <errors>
      <code>281017</code>
      <title>Недопустимое значение параметра</title>
      <detail>Данный параметр может содержать только значения из списка доступных значений</detail>
      <link>https://dev.dellin.ru/api/ordering/request/#error_281017</link>
      <fields>requester</fields>
      <validValues>1</validValues>
      <validValues>2</validValues>
      <validValues>3</validValues>
   </errors>
   <errors>
      <code>117004</code>
      <title>значение не найдено в справочнике</title>
      <detail>необходимо выбрать значение из соответствующего справочника</detail>
      <link>https://dev.dellin.ru/calculation/pickup/#error_117004</link>
      <fields>requester</fields>
      <badValues>0xa77fcf6a449164ed490133777a68bd00</badValues>
   </errors>
</response>

Описание параметров

Response
Параметр Тип Описание
metadata object Информация об оформленной заявке
metadata.status integer

Эмуляция http-кода состояния

metadata.detail string Текстовое описание ответа сервера
metadata.generated_at string Дата и время генерации ответа сервера
errors array of Response.Errors Перечень ошибок
Response.Errors
Параметр Тип Описание
code integer Номер ошибки
title string

Краткое описание ошибки

detail string Детальное описание ошибки
link string Ссылка на документацию
fields array of string Список параметров в запросе к методу, вызвавших ошибку
validValues array of string Список доступных значений параметра
badValues array of string Список ошибочных значений, переданных в параметре
Номер ошибки http-код Краткое описание ошибки Детальное описание ошибки

100001

415 Некорректный content-type Допустимые значения content-type: application/json (стандарт RFC4627) и text/xml (стандарт RFC3023)

100002

404 Метод не найден Проверьте правильность адреса метода

100003

410 Метод отключен Запрошенный метод более не доступен

100004

403 Отсутствует доступ к методу Доступ к методу предоставляется по требованию. Для получения доступа обратитесь к персональному менеджеру или в техническую поддержку

100005

429 Количество запросов к превышено Превышена допустимая частота запросов. Для увеличения лимита обратитесь к персональному менеджеру или в техническую поддержку

100006

500 Внутренняя ошибка сервера Попробуйте вызвать метод через некоторое время. При повторении ошибки обратитесь в службу поддержки

101001

401 Требуется авторизация Не передан API-ключ

101002

401 Требуется авторизация Передан недействительный API-ключ

101003

401 Требуется авторизация Требуется передать параметр sessionID

101004

401 Требуется авторизация Время жизни сессии истекло

101005

401 Требуется авторизация Сессия не найдена или создана с другим API-ключом

101006

401 Требуется авторизация Неверный логин или пароль

101007

401 Требуется авторизация API-ключ заблокирован. Обратитесь в техническую поддержку

101008

401 Ошибка парсинга Запрос не соответствует формату json

101009

401 Ошибка парсинга Запрос не соответствует формату xml

110001

400 Неверный формат параметра Значение, переданное в параметре, не соответствует требуемому формату

110002

400 Ошибка типизации Значение, переданное в параметре, имеет некорректный тип

110003

400 Отсутствует обязательный параметр Отсутствует обязательный параметр

110004

400 Не передан ни один из обязательных параметров В запросе должен присутствовать хотя бы один параметр из совокупности, однако не указано ни одного

110005

400 Допустима передача только одного из параметров Указаны взаимоисключающие параметры, только один из которых может присутствовать в запросе

110006

400 Превышено ограничение на длину списка Количество элементов в списке превышает максимально допустимое

110007

400 Объект не существует Не найден объект с указанным ID. Проверьте правильность переданного значения

110008

400 Недопустимый набор параметров Указанные параметры не должны участвовать в запросе

120001

500 Внутренняя ошибка сервера

Попробуйте вызвать метод через некоторое время. При повторении ошибки обратитесь в службу поддержки

(Причина: Сервис calculateCustomers не отвечает)

120002

500 Внутренняя ошибка сервера

Попробуйте вызвать метод через некоторое время. При повторении ошибки обратитесь в службу поддержки

(Причина: Сервис calculateCustomers вернул неизвестную ошибку)

120101

500 Внутренняя ошибка сервера

Попробуйте вызвать метод через некоторое время. При повторении ошибки обратитесь в службу поддержки

(Причина: Сервис calculateCustomersV2 не отвечает)

120102

500 Внутренняя ошибка сервера

Попробуйте вызвать метод через некоторое время. При повторении ошибки обратитесь в службу поддержки

(Причина: Сервис calculateCustomersV2 вернул неизвестную ошибку)

120201

400 Ошибка в параметрах запроса

Переданы неправильные параметры в запрос

(Причина: Переданы некорректные данные в getOrdersTracker)

120301

500 Внутренняя ошибка сервера

Попробуйте вызвать метод через некоторое время. При повторении ошибки обратитесь в службу поддержки

(Причина: Сервис getPaymentsByOrders не отвечает)

121001

500 Внутренняя ошибка сервера

Попробуйте вызвать метод через некоторое время. При повторении ошибки обратитесь в службу поддержки

121002

500 Внутренняя ошибка сервера

Попробуйте вызвать метод через некоторое время. При повторении ошибки обратитесь в службу поддержки

130001

500 Внутренняя ошибка сервера Попробуйте вызвать метод через некоторое время. При повторении ошибки обратитесь в службу поддержки

130002

400 Ошибка выполнения запроса Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

130003

400 Указан некорректный документ, удостоверяющий личность Проверьте правильность переданных значений

130004

400 Не передан ни один из обязательных параметров

В запросе должен присутствовать хотя бы один параметр из совокупности, однако не указано ни одного

130005

400 Отсутствует обязательный параметр Отсутствует обязательный параметр

130006

400 Значение превышает допустимое Габариты превышают допустимые размеры

130007

400 Неверный формат параметра Значение, переданное в параметре, не соответствует требуемому формату

130008

400

Недопустимое значение параметра Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

130009

400 Превышено ограничение на длину значения Превышена максимально допустимая длина значения поля

130010

400 Отсутствует согласие с тарифами и правилами перевозки Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

130014

400 Ошибка наложенного платежа Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

130015

400 Ошибка оформления услуги Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

130017

400 Невозможно оформить заявку на указанное время

130021

400 Услуга недоступна Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

130022

400 Указан некорректный адрес Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

130023

400 Выбран недопустимый терминал Выбран недопустимый терминал

130024

400 Превышено ограничение на длину списка Превышено максимальное количество контрагентов в адресной книге (10000). Необходимо удалить часть записей или обратиться в службу поддержки

150001

500 Внутренняя ошибка сервера Попробуйте вызвать метод через некоторое время. При повторении ошибки обратитесь в службу поддержки

150002

500 Внутренняя ошибка сервера Попробуйте вызвать метод через некоторое время. При повторении ошибки обратитесь в службу поддержки

180001

400 Указан некорректный документ, удостоверяющий личность Проверьте правильность переданных значений

180002

400 Указан некорректный адрес Указан некорректный адрес

180003

400 Выбран недопустимый терминал Выбранный терминал не может принять груз с указанными ВГХ

180004

400 Услуга недоступна Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180005

400 Значение превышает допустимое Весогабаритные характеристики груза превышают допустимые для приёма на терминалах города

180006

400 Ошибка в параметрах запроса Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180007

400 Недопустимое значение параметра Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180008

400 Ошибка упрощенной отправки Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180009

400 Ошибка оформления услуги Доставка в день заказа Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180010

400 Ошибка оформления услуги Доставка в точное время Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180011

400 Указан некорректный период работы Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180012

400 Выбранная дата недоступна Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180013

400 Ошибка параметров оплаты Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180014

400 Ошибка наложенного платежа Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180015

400 Ошибка оформления услуги Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180016

400 Ошибка при сохранении заявки Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180017

400 Невозможно оформить заявку на указанное время Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

Я получаю ошибку

Предупреждение: file_get_contents (https://graph.facebook.com/me?fields=id,name,picture) [function.file-get-contents]: не удалось открыть поток: сбой HTTP-запроса! HTTP / 1.0 400 неверный запрос в /home/schoolda/public_html/fblogin.php в строке 36

При попытке получить данные пользователя из API графа facebook. Я успешно аутентифицировал и авторизовал свое приложение, но я не знаю, как получить предоставленные данные. Спасибо за любое предложение.

2 ответа

Лучший ответ

Вам необходимо включить свой токен авторизации в запрос API.

Пытаться:

file_get_contents(https://graph.facebook.com/me?fields=id,name,picture&access_token=FACEBOOK_ACCESS_TOKEN)

Помимо токена аутентификации, вы можете попробовать добавить error_reporting в file_get_contents:

$val = stream_context_create(array('error_reporting' => TRUE));

И используйте $val в третьем параметре file_get_contents.

Почему? Потому что тогда вы можете повторить результат и увидеть, почему Facebook говорит «нет». Когда в API возникает ошибка, Facebook отправляет ответ об ошибке на ваш сервер.
file_get_contents тогда по умолчанию предполагает, что ваш запрос вообще не работал.


2

Robin Castlin
4 Мар 2012 в 13:42

photos.createAlbum — rest api

Создает новый фотоальбом.

Для вызова функции требуется привилегия photos. Вы можете создать фотоальбом без запроса привилегий с помощью функции photos.createAlbumjs.

Параметры

Имя Тип Описание
aid string aid создаваемого альбома (будет частью url’а); обязательный параметр
title string название альбома; обязательный параметр
description string описание альбома
privacy int режим доступа к альбому, описание возможных вариантов см. ниже; по-умолчанию 2
password string пароль для доступа к альбому, указывается при значении privacy=3; кодировка UTF-8

Параметр aid задает желаемый aid альбома. Если альбом с таким aid уже есть, то новый альбом будет иметь случайный aid. Всегда проверяйте результат, возвращаемый функцией, для определения aid нового альбома.

Варианты уровней доступа для параметра privacy:

  • 0 — доступно только создателю
  • 2 — доступно всем
  • 3 — доступно по паролю; в этом случае параметр password становится обязательным
  • 4 — доступно только друзьям
  • 5 — доступно только лучшим друзьям
  • 6 — доступно только друзьям с блогов

Обратите внимание, что из API доступны только альбомы, открытые для всех.

Результат

Возвращает объект созданного альбома в формате, аналогичном photos.getAlbumsrest.

Коды ошибок

Код Описание
1 Unknown error: Please resubmit the request.
2 Unknown method called.
3 Service Unavailable. Please try again later.
4 Method is deprecated.
100 One of the parameters specified is missing or invalid.
102 User authorization failed: the session key or uid is incorrect.
103 Application lookup failed: the application id is not correct.
104 Incorrect signature.
105 Application is not installed for this user.
200 Permission error: the application does not have permission to perform this action.

Пример вызова

http://www.appsmail.ru/platform/api?method=photos.createAlbum&
app_id=123456&session_key=551fd0e4779e35859dfccd03397dc8a0&
sig=95a393ed7639184a52f7a17b6771a92&aid=my_album&title=my%20album&
permissions=3&password=qwerty

См. также

  • photos.getrest
  • photos.getAlbumsrest
  • photos.uploadrest
  • photos.createAlbumjs
  • photos.getjs
  • photos.getAlbumsjs
  • photos.uploadjs
  • photos.uploadAvatarjs

Страница полностью не открывается в Однокласниках. Вылетает «Ошибка при инициализации API соц. сети».

Что мне делать? Как снова зайти на odnoklassniki.ru?



спросил

19 Март, 14


от
аноним


в категории Одноклассники


ОШИБКА ПРИ ИНИЦИАЛИЗАЦИИ API СОЦ.СЕТИ,ЧТО ДЕЛАТЬ? КАК ОТКРЫТЬ?

Тут уже придется подождать пока заработает игра. Ничего не сделаешь.

Ваш ответ

2 Ответы

Скорее всего, это ошибка на стороне сервера игры. Попробуйте зати в приложение позже или очистить куки и кэш своего браузера, перезапустить свой браузер и попытаться повторно зайти в приложение / на сайт.






ответил

25 Окт, 14


от
Administration

(3,200 баллов)



What did you do?

async function uploadPhoto(title, urlList) {

    const photoList = urlList.map(link=> {
        return {value: link};
    });
        
    const response = await vk.upload.photoAlbum({
        album_id: (await Album.getAlbums()).find(a=>a.title.startsWith(title)).id,
        source: {
            values: photoList
        }
    });
        
    return response;
};

uploadPhoto('albumName', ['img url'])

What did you expect to happen?

Загрузка фотографии в альбом

What was the actual result?

Пустое значение { key: 'photos_list', value: '' }

APIError: Code №100 - One of the parameters specified was missing or invalid: photos_list is invalid
    at SequentialWorker.execute (D:devvknode_modulesvk-iolibindex.js:1440:39)
    at processTicksAndRejections (internal/process/task_queues.js:97:5) {
  code: 100,
  params: [
    { key: 'method', value: 'photos.save' },
    { key: 'oauth', value: '1' },
    { key: 'v', value: '5.122' },
    { key: 'album_id', value: '276855811' },
    { key: 'server', value: '856316' },
    { key: 'photos_list', value: '' },
    { key: 'aid', value: '276855811' },
    { key: 'hash', value: 'e00ad5dbaa6dbf172e4da706518ec17d' }
  ]
}

Additional Info

photoList содержит

[
  {
    value: 'https://sun9-59.userapi.com/impf/ПРАВИЛЬНУЮ__ССЫЛКУ.jpg'
  }
]

Versions

package version
vk-io 4.0.2
node 12.18.3
npm 6.14.6

3 / 3 / 2

Регистрация: 18.02.2017

Сообщений: 39

1

17.12.2017, 20:10. Показов 2179. Ответов 0


Студворк — интернет-сервис помощи студентам

Здравствуйте, есть инструмент, позволяющий интегрировать в него недвижимость с разных сайтов таких как booking.com airbnb и т.д.
https://realtycalendar.ru
у этого сервиса есть api с такой документацией
https://docs.google.com/docume… 4vkkE/edit
я пытаюсь получить список всех броней на этом сервисе, но в ответ возвращается 404 ошибка. И прежде чем писать в саппорт, хотелось бы убедиться что это не я налажал с конструированием запроса.
дело в том что для того чтобы запросить список забронированных квартир нужно послать пост запрос с тремя параметрами
begin_date: yyyy-mm-dd
end_date: yyyy-mm-dd
sign:
подпись делается судя по доке из md5 хэша параметров в алфавитном порядке и приватного клуча
то есть типа
sign: md5(‘begin_date=yyyy-mm-ddend_date=yyyy-mm-ddPRIVATE_KEY’)
вот мой код возвращающий 404

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import requests
import hashlib
 
KEYS = {
    'public': '3bc48ca2dd73e6eb8aa42a458ad3dabb',
    'private': '40fac5841bd7d67740e61ff36cd166ad',
}
 
 
def get_sorted_keys(obj):
    """
    sort object keys alphabetically
 
    :param dict obj: dict object
    :return: alphabetically sorted array of obj keys
    """
    return sorted(list(obj.keys()))
 
 
def generate_data_string(obj, private_key):
    """
    generate string for api call from object and private key
    :param dict obj: dict object with interesting fields like begin_date
    :param str private_key: string with private key
    :return str: string for sign
    example:
    generate_data_string({atest1: '1', btest2: '2'}, blabla)
    =>
    atest1=1btest2=2blabla
    """
    sorted_obj_keys = get_sorted_keys(obj)
    string = ''
    for key in sorted_obj_keys:
        string += '{key}={value}'.format(key=key, value=obj[key])
    return string + private_key
 
 
def generate_md5(string):
    """
    generate md5 string for sign
    :param str string:
    :return: md5 string
    """
    return hashlib.md5(string.encode('utf-8')).hexdigest()
 
 
data = {
    'begin_date': '2017-11-16',
    'end_date': '2017-12-20',
}
 
print(generate_data_string(data, KEYS['private']))
# => begin_date=2017-11-16end_date=2017-12-2040fac5841bd7d67740e61ff36cd166ad
print(generate_md5(generate_data_string(data, KEYS['private'])))
# => a6c37ca03653e11bc98f8520fdae91b8
 
sign = generate_md5(generate_data_string(data, KEYS['private']))
data['sign'] = sign
 
print(data)
# => {'end_date': '2017-12-20', 'sign': 'a6c37ca03653e11bc98f8520fdae91b8', 'begin_date': '2017-11-16'}
 
req_url = 'https://realtycalendar.ru/api/v1/bookings/{}'.format(KEYS['public'])
print(req_url)
# => https://realtycalendar.ru/api/v1/bookings/3bc48ca2dd73e6eb8aa42a458ad3dabb
 
response = requests.post(url=req_url, data=data)
 
# Информация о запросе
print(response.request.body, response.request.url, response.request.method)
# => sign=a6c37ca03653e11bc98f8520fdae91b8&begin_date=2017-11-16&end_date=2017-12-20 https://realtycalendar.ru/api/v1/bookings/3bc48ca2dd73e6eb8aa42a458ad3dabb POST
 
 
 
print(response.status_code)
# => 404
# в коде ответа значится 404 'Страница не найдена'

если у кого есть время глянуть буду благодарен.



0



  • Произошла ошибка при обновлении интерфейса ethernet не удается найти указанный файл
  • Произошла ошибка при обработке страницы произошла внутренняя ошибка adobe reader
  • Произошла ошибка при обновлении драйверов geforce experience
  • Произошла ошибка при обработке страницы недостаточно памяти adobe reader
  • Произошла ошибка при обновлении дота 2 ошибка чтения диска