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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Функция для обращения к API ВКонтакте

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: PHP
nikob
Отправлено: 15 Апреля, 2011 - 21:56:19
Post Id


Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Апр. 2011  


Помог: 1 раз(а)




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

(Отредактировано автором: 15 Апреля, 2011 - 21:57:41)

 
 Top
ALEN Модератор
Отправлено: 17 Апреля, 2011 - 15:51:25
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




Буду благодарен, если полностью перепишешь под CURL с авторизацией и сохранением сессии.
Я бы сделал в виде класса, чтоб можно было создавать несколько авторизованных сессий и через объект работать с нужной, без постоянного пере подключения, так же сохранял бы сессию, чтоб при определенных условиях можно было использовать дальше не делая лишних запросов к хосту.
 
 Top
nikob
Отправлено: 23 Мая, 2011 - 11:18:38
Post Id


Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Апр. 2011  


Помог: 1 раз(а)




ALEN пишет:
Буду благодарен, если полностью перепишешь под CURL с авторизацией и сохранением сессии.
Я бы сделал в виде класса, чтоб можно было создавать несколько авторизованных сессий и через объект работать с нужной, без постоянного пере подключения, так же сохранял бы сессию, чтоб при определенных условиях можно было использовать дальше не делая лишних запросов к хосту.


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

(Отредактировано автором: 23 Мая, 2011 - 11:19:09)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Пользовательские функции »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB