Iframe приложение + PHP( запрос photos.getAlbums)

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

Iframe приложение + PHP( запрос photos.getAlbums)

Сообщение magsim » 09 авг 2012, 22:28

Всем доброе время суток, пытаюсь получить информацию о альбомах пользователя в приложение методом photos.getAlbums.
Использую данный класс-
vkapi.class
  1. <?php
  2.  
  3.  
  4. class vkapi {
  5.     var $api_secret;
  6.     var $app_id;
  7.     var $api_url;
  8.    
  9.     function vkapi($app_id, $api_secret, $api_url = 'api.vk.com/api.php') {
  10.         $this->app_id = $app_id;
  11.         $this->api_secret = $api_secret;
  12.         if (!strstr($api_url, 'http://')) $api_url = 'http://'.$api_url;
  13.         $this->api_url = $api_url;
  14.     }
  15.    
  16.     function api($method,$params=false) {
  17.         if (!$params) $params = array();
  18.         $params['api_id'] = $this->app_id;
  19.         $params['v'] = '3.0';
  20.         $params['method'] = $method;
  21.         $params['timestamp'] = time();
  22.         $params['format'] = 'json';
  23.         $params['random'] = rand(0,10000);
  24.         ksort($params);
  25.         $sig = '';
  26.         foreach($params as $k=>$v) {
  27.             $sig .= $k.'='.$v;
  28.         }
  29.         $sig .= $this->api_secret;
  30.         $params['sig'] = md5($sig);
  31.         $query = $this->api_url.'?'.$this->params($params);
  32.         $res = file_get_contents($query);
  33.         return json_decode($res, true);
  34.     }
  35.    
  36.     function params($params) {
  37.         $pice = array();
  38.         foreach($params as $k=>$v) {
  39.             $pice[] = $k.'='.urlencode($v);
  40.         }
  41.         return implode('&',$pice);
  42.     }
  43. }
  44. ?>


Код для получение index.php
  1. <?
  2. require 'vkapi.class.php';
  3.  
  4. $api_id = -; // Insert here id of your application
  5. $secret_key = '-'; // Insert here secret key of your application
  6.  
  7. $VK = new vkapi($api_id, $secret_key);
  8.  
  9. $resp = $VK->api('photos.getAlbums', array('uids'=>''));
  10.  
  11. print_r($resp);
  12. ?>
  13.  

Ответ в приложении:
Array ( [error] => Array ( [error_code] => 15 [error_msg] => Access denied [request_params] => Array ( [0] => Array ( [key] => api_id [value] => 3055371 ) [1] => Array ( [key] => format [value] => json ) [2] => Array ( [key] => method [value] => photos.getAlbums ) [3] => Array ( [key] => random [value] => 5124 ) [4] => Array ( [key] => timestamp [value] => 1344540373 ) [5] => Array ( [key] => uids [value] => ) [6] => Array ( [key] => v [value] => 3.0 ) [7] => Array ( [key] => sig [value] => bc6fc07a1754793b12bbebdfbf0dc7bd ) ) ) )

Вопрос : как правильно получить список альбом, сами фотографии?
И главный вопрос как получть ID пользвоателя ? который открыл приложения, желательно незатрагивая JavaScript
magsim

 
Автор темы
Сообщения: 13
Зарегистрирован: 09 авг 2012, 22:11
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

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

Google
 



Re: Iframe приложение + PHP( запрос photos.getAlbums)

Сообщение Александр » 10 авг 2012, 12:53

magsim
У пользователя в настройках приложения должен быть разрешен доступ к фотографиям.
Для вызова этого метода Ваше приложение должно иметь права с битовой маской, содержащей 4. (Подробнее о получении прав)

http://vk.com/developers.php?oid=-1&p=photos.getAlbums
http://vk.com/developers.php?oid=-1&p=photos.get
http://vk.com/developers.php?oid=-1&p=% ... 0%B8%D0%B9

Аналогично переменным flashVars, передаваемым во Flash-приложение, в IFrame-приложение эти переменные передаются посредством GET-параметров запроса.

http://vk.com/developers.php?oid=-1&p=I ... 0%B8%D1%8F
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Re: Iframe приложение + PHP( запрос photos.getAlbums)

Сообщение magsim » 10 авг 2012, 18:49

А как получить права? только средствами JavaScript? или как
magsim

 
Автор темы
Сообщения: 13
Зарегистрирован: 09 авг 2012, 22:11
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Re: Iframe приложение + PHP( запрос photos.getAlbums)

Сообщение Alazaur » 10 авг 2012, 18:55

Сейчас уже это кодом делать не обязательно. В настройках приложения просто поставьте, что "Установка требуется", "Запрашивать доступ к фотографиям". Ну и сами потом в свое же приложение зайдите, оно и у вас этот доступ запросит.
Alazaur
Разработчик
Разработчик
 
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25
Благодарил (а): 24 раз.
Поблагодарили: 121 раз.

Re: Iframe приложение + PHP( запрос photos.getAlbums)

Сообщение magsim » 10 авг 2012, 19:02

хорошо буду пробовать,
А есть ли ще готовые классы для работы с АПИ?
magsim

 
Автор темы
Сообщения: 13
Зарегистрирован: 09 авг 2012, 22:11
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Re: Iframe приложение + PHP( запрос photos.getAlbums)

Сообщение Alazaur » 10 авг 2012, 19:07

Та тут даж где-то конструктор приложений был :D
Посмотрите по форуму
Alazaur
Разработчик
Разработчик
 
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25
Благодарил (а): 24 раз.
Поблагодарили: 121 раз.

Re: Iframe приложение + PHP( запрос photos.getAlbums)

Сообщение magsim » 10 авг 2012, 21:09

В код добавил id пользователя, в приложение поставил : Права доступа: Запрашивать доступ к: доступ к друзьям, доступ к фотографиям

  1. <?
  2. $id = $_GET['viewer_id'];
  3. require 'vkapi.class.php';
  4.  
  5. $api_id = 3055371; // Insert here id of your application
  6. $secret_key = '0ugvIX3eMkuvgodXHYOV'; // Insert here secret key of your application
  7.  
  8. $VK = new vkapi($api_id, $secret_key);
  9.  
  10. $resp = $VK->api('photos.getAlbums', array('uids'=>$id));
  11.  
  12. print_r($resp);
  13. echo $id;
  14. ?>


Вывод:
  1. Array ( [error] => Array ( [error_code] => 15 [error_msg] => Access denied [request_params] => Array ( [0] => Array ( [key] => api_id [value] => 3055371 ) [1] => Array ( [key] => format [value] => json ) [2] => Array ( [key] => method [value] => photos.getAlbums ) [3] => Array ( [key] => random [value] => 8925 ) [4] => Array ( [key] => timestamp [value] => 1344622168 ) [5] => Array ( [key] => uids [value] => 7859258 ) [6] => Array ( [key] => v [value] => 3.0 ) [7] => Array ( [key] => sig [value] => 583b250ea909077697418a8760b644b9 ) ) ) ) 7859258

 
В чем может быть ошибка?

 
 
magsim

 
Автор темы
Сообщения: 13
Зарегистрирован: 09 авг 2012, 22:11
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Re: Iframe приложение + PHP( запрос photos.getAlbums)

Сообщение Александр » 11 авг 2012, 18:27

magsim
Внимательнее к документации http://vk.com/developers.php?oid=-1&p=photos.getAlbums
uid, а не uids.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Re: Iframe приложение + PHP( запрос photos.getAlbums)

Сообщение andrei2295kmail » 15 ноя 2012, 19:51

у меня такаже проблема, все вроде правильно прописал,
но не работает
andrei2295kmail

 
Сообщения: 188
Зарегистрирован: 07 ноя 2011, 10:51
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.

Re: Iframe приложение + PHP( запрос photos.getAlbums)

Сообщение Александр » 16 ноя 2012, 20:07

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


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



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

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

cron