Получение данных при помощи удаленного сервера

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)

Получение данных при помощи удаленного сервера

Сообщение Nick Lisogor » 09 мар 2011, 17:44

Здравствуйте. Недавно мне нужно было подключиться к серверу vkontakte и узнать нужные мне данные о пользователях, сделал это при помощи сервера, обращающегося к PHP скрипту POST запросом(также тестировал GET запросом напрямую):

  1. <?
  2.     require 'vkapi.class.php';
  3.  
  4.     (String)$app_id = some_id;
  5.     (String)$api_secret_key = 'some_key';
  6.  
  7.     $connection = new vkapi($app_id, $api_secret_key);
  8.    
  9.     $users_data = $connection->api('getProfiles', array('uids'=>(String)$_POST['users']));
  10.     //$users_data = $connection->api('getProfiles', array('uids'=>(String)$_GET['users']));
  11.    
  12.     $response = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
  13.     $response .= "<response>";
  14.    
  15.     for((int)$i = 0; $i < count($users_data); $i ++)
  16.     {
  17.         $response .= "<user";
  18.         $response .= " uid=\"".$users_data['response'][$i]['uid']."\"";
  19.         $response .= " first_name=\"".$users_data['response'][$i]['first_name']."\"";
  20.         $response .= " last_name=\"".$users_data['response'][$i]['last_name']."\"";
  21.         $response .= "/>";
  22.     }
  23.    
  24.     $response .= "</response>";
  25.    
  26.     echo $response;
  27. ?>


Поясняю: код должен получать строку с id пользователей (через запятую): 'id1,id2,id3,...,idn' и возвращать id,имя и фамилию каждого пользователя в списке в XML. Но, к сожалению, пока что только возвращает четвертую ошибку. Код, вроде, верный, да и cURL поддерживается. Вроде, все. Буду рад любой помощи)
Услуги клиент-сервер(оптимальные цены)
Работаю с PHP, ActionScript 3, JavaScript.
Nick Lisogor
FL Team
FL Team
 
Автор темы
Сообщения: 119
Зарегистрирован: 12 дек 2010, 14:08
Благодарил (а): 10 раз.
Поблагодарили: 9 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: Получение данных при помощи удаленного сервера

Сообщение Александр » 09 мар 2011, 23:34

Nick Lisogor
Код рабочий.
Проверь что id и защищенный ключ указаны верно.
users точно передается POST запросом, а не GET ?
Сделай
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Re: Получение данных при помощи удаленного сервера

Сообщение Nick Lisogor » 10 мар 2011, 15:26

Александр, все данные указаны верно, users точно передаются POST запросом(GET мне нужен был для отладки), vkapi.class.php стандартный, сам класс я не редактировал(под XML он будет переделан позже), $_POST['users'] я пробовал заменить напрямую на 'id1,id2,...,idn', но это также не помогло.
Услуги клиент-сервер(оптимальные цены)
Работаю с PHP, ActionScript 3, JavaScript.
Nick Lisogor
FL Team
FL Team
 
Автор темы
Сообщения: 119
Зарегистрирован: 12 дек 2010, 14:08
Благодарил (а): 10 раз.
Поблагодарили: 9 раз.

Re: Получение данных при помощи удаленного сервера

Сообщение Nick Lisogor » 11 мар 2011, 14:40

Update:

Решил начать с нуля, стараясь изменить как можно меньше кода:

- создал тестовое приложение;
- скачал архив с примером: 'http://vkontakte.ru/source/APIServerPHPClass.zip';
- заменил id приложения и секрет в примере(index.php);
- выполнил скрипт.

В результате, сервер vkontakte вернул ошибку 4(Incorrect signature: server authorization):

  1. Array ( [error] => Array ( [error_code] => 4 [error_msg] => Incorrect signature: server authorization [request_params] => Array ( [0] => Array ( [key] => api_id [value] => 2227172 ) [1] => Array ( [key] => format [value] => json ) [2] => Array ( [key] => method [value] => getProfiles ) [3] => Array ( [key] => random [value] => 8598 ) [4] => Array ( [key] => timestamp [value] => 1299839774 ) [5] => Array ( [key] => uids [value] => 1,6492 ) [6] => Array ( [key] => v [value] => 3.0 ) [7] => Array ( [key] => sig [value] => 6ae6c6adaff334d3bf8523b920089094 ) ) ) )


Возможно, эта ошибка вызвана из-за того, что приложение не прошло модерацию так, как оно новое, также я 'Включил приложение' и сделал его видимым всем.
Услуги клиент-сервер(оптимальные цены)
Работаю с PHP, ActionScript 3, JavaScript.
Nick Lisogor
FL Team
FL Team
 
Автор темы
Сообщения: 119
Зарегистрирован: 12 дек 2010, 14:08
Благодарил (а): 10 раз.
Поблагодарили: 9 раз.

Re: Получение данных при помощи удаленного сервера

Сообщение Александр » 11 мар 2011, 21:48

Nick Lisogor
Я проверял твой код на непроверенном приложении, которое было создано давно.
Попробуй код отсюда Вызов серверных методов (APIServerPHPClass), заменив только id приложения и защищенный ключ.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Re: Получение данных при помощи удаленного сервера

Сообщение Nick Lisogor » 11 мар 2011, 22:34

Александр, вернуло ту же ошибку. Возможно, запрос к серверу vkontakte сформирован не правильно, хотя, вряд ли, так, как vkapi.class.php всё таки из официального источника, та и по документации я проверял.
Услуги клиент-сервер(оптимальные цены)
Работаю с PHP, ActionScript 3, JavaScript.
Nick Lisogor
FL Team
FL Team
 
Автор темы
Сообщения: 119
Зарегистрирован: 12 дек 2010, 14:08
Благодарил (а): 10 раз.
Поблагодарили: 9 раз.

Re: Получение данных при помощи удаленного сервера

Сообщение Александр » 11 мар 2011, 23:42

Точно используешь защищенный ключ, а не секретный?
Какой хостинг? Создай php файл с содержимым:

И открой на своем сервере. Одновременно с этим открой http://flapps.ru/time.php
Сравни значения. Сильно отличаются?

За это сообщение автора Александр поблагодарил:
Nick Lisogor
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Re: Получение данных при помощи удаленного сервера

Сообщение Nick Lisogor » 12 мар 2011, 14:22

Огромное спасибо, Александр. Нелепая ситуация вышла, действительно, дело было именно во времени.
Услуги клиент-сервер(оптимальные цены)
Работаю с PHP, ActionScript 3, JavaScript.
Nick Lisogor
FL Team
FL Team
 
Автор темы
Сообщения: 119
Зарегистрирован: 12 дек 2010, 14:08
Благодарил (а): 10 раз.
Поблагодарили: 9 раз.

Re: Получение данных при помощи удаленного сервера

Сообщение annechko » 12 июл 2015, 19:12

Nick Lisogor
скажите, пожалуйста, а как вы исправили ошибку со временем? у меня похожая ситуация, не знаю, что делать :(
annechko

 
Сообщения: 7
Зарегистрирован: 28 июн 2015, 21:38
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.


Вернуться в Создание Flash-приложений ВКонтакте



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron