Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Функция для обращения к API ВКонтакте
Форумы портала PHP.SU » PHP » Пользовательские функции » Функция для обращения к API ВКонтакте

Страниц (1): [1]
 

1. nikob - 15 Апреля, 2011 - 21:56:19 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. function api($method, $input) {
  2.  
  3. // $method - метод для запроса к API (secure.addVotes например)
  4. // $input - массив с параметрами для передачи
  5. // api_id - ID приложения ВКонтакте
  6. // v - версия API ВКонтакте
  7. // format - эта функция поддерживает только  JSON
  8. // timestamp - время запроса
  9. // random - случайное число
  10. // $secret - секретный код, который указывается в настройках приложения
  11.  
  12. $url = config("api_url");
  13. $api=Array(
  14. "api_id"    => "1234567",
  15. "v"         => "2.0",
  16. "format"    => "JSON",
  17. "timestamp" => time(),
  18. "random"    => rand(10000,99999),
  19. "method"    => $method
  20. );
  21.  
  22. $secret = "test_secretcode123";
  23.  
  24. $arr = $api + $input;
  25. ksort($arr);
  26. $sig = "";
  27. $url .="?";
  28. while (list($key, $val) = each($arr)) {
  29. $sig .= "$key=$val";
  30. $url .="$key=$val&";
  31. }
  32.  
  33. $sig .= $secret;
  34. $sig = md5($sig);
  35. $url .= "sig=$sig";
  36. $res = file_get_contents($url);
  37. $result = json_decode($res, true);
  38. return $result;
  39. }


Для чего эта функция? Функция предназначена для обращения к API ВКонтакте, в ответ получает результат в формате JSON (подробнее: http://vkontakte[dot]ru/developers.php )

Какие параметры есть у этой функции?

Параметры, указываемые при вызове функции:
$method - название метода, который вызывается (например: secure.addVotes)
$input - массив дополнительных параметров, для каждого метода есть свои доп. параметры

Параметры, указываемые в смой функции, так сказать, примитивные настройки:
api_id - ID приложения ВКонтакте
v - версия API ВКонтакте
format - формат ответа, эта функция поддерживает только JSON
timestamp - время запроса
random - случайное число
$secret - секретный код, который указывается в настройках приложения


пример использования функции:
PHP:
скопировать код в буфер обмена
  1.  
  2. $params=array(
  3. "uids"=>"1,100,12345,6018035",
  4. "fields"=>"uid,first_name,last_name,sex,country,photo"
  5. );
  6. $response = api("getProfiles", );
  7. echo $response['response'][1]['first_name'];


Сам занимаюсь разработкой приложений ВКонтакте на iFrame, может кому пригодится Радость

С удовольствием выслушаю ваши комментарии и замечания! Улыбка


Документация API ВКонтакте: http://vkontakte[dot]ru/developers.php
2. ALEN - 17 Апреля, 2011 - 15:51:25 - перейти к сообщению
Буду благодарен, если полностью перепишешь под CURL с авторизацией и сохранением сессии.
Я бы сделал в виде класса, чтоб можно было создавать несколько авторизованных сессий и через объект работать с нужной, без постоянного пере подключения, так же сохранял бы сессию, чтоб при определенных условиях можно было использовать дальше не делая лишних запросов к хосту.
3. nikob - 23 Мая, 2011 - 11:18:38 - перейти к сообщению
ALEN пишет:
Буду благодарен, если полностью перепишешь под CURL с авторизацией и сохранением сессии.
Я бы сделал в виде класса, чтоб можно было создавать несколько авторизованных сессий и через объект работать с нужной, без постоянного пере подключения, так же сохранял бы сессию, чтоб при определенных условиях можно было использовать дальше не делая лишних запросов к хосту.


Написал класс с CURL, и с новый протоколом авторизции OAuth, как вы просили Радость
http://forum.php.su/topic.php?fo...35&topic=752

 

Powered by ExBB FM 1.0 RC1