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

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
Ответить
magsim
Сообщения: 13
Зарегистрирован: 09 авг 2012, 22:11

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

Сообщение magsim »

Всем доброе время суток, пытаюсь получить информацию о альбомах пользователя в приложение методом photos.getAlbums.
Использую данный класс-
vkapi.class

Код: Выделить всё

<?php  class vkapi {    var $api_secret;    var $app_id;    var $api_url;        function vkapi($app_id, $api_secret, $api_url = 'api.vk.com/api.php') {        $this->app_id = $app_id;        $this->api_secret = $api_secret;        if (!strstr($api_url, 'http://')) $api_url = 'http://'.$api_url;        $this->api_url = $api_url;    }        function api($method,$params=false) {        if (!$params) $params = array();         $params['api_id'] = $this->app_id;        $params['v'] = '3.0';        $params['method'] = $method;        $params['timestamp'] = time();        $params['format'] = 'json';        $params['random'] = rand(0,10000);        ksort($params);        $sig = '';        foreach($params as $k=>$v) {            $sig .= $k.'='.$v;        }        $sig .= $this->api_secret;        $params['sig'] = md5($sig);        $query = $this->api_url.'?'.$this->params($params);        $res = file_get_contents($query);        return json_decode($res, true);    }        function params($params) {        $pice = array();        foreach($params as $k=>$v) {            $pice[] = $k.'='.urlencode($v);        }        return implode('&',$pice);    }}?>
Код для получение index.php

Код: Выделить всё

<?require 'vkapi.class.php'; $api_id = -; // Insert here id of your application$secret_key = '-'; // Insert here secret key of your application $VK = new vkapi($api_id, $secret_key); $resp = $VK->api('photos.getAlbums', array('uids'=>'')); print_r($resp);?> 
Ответ в приложении:
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
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

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

Сообщение Александр »

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

Код: Выделить всё

$_GET['viewer_id']
magsim
Сообщения: 13
Зарегистрирован: 09 авг 2012, 22:11

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

Сообщение magsim »

А как получить права? только средствами JavaScript? или как
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

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

Сообщение Alazaur »

Сейчас уже это кодом делать не обязательно. В настройках приложения просто поставьте, что "Установка требуется", "Запрашивать доступ к фотографиям". Ну и сами потом в свое же приложение зайдите, оно и у вас этот доступ запросит.
magsim
Сообщения: 13
Зарегистрирован: 09 авг 2012, 22:11

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

Сообщение magsim »

хорошо буду пробовать,
А есть ли ще готовые классы для работы с АПИ?
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

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

Сообщение Alazaur »

Та тут даж где-то конструктор приложений был :D
Посмотрите по форуму
magsim
Сообщения: 13
Зарегистрирован: 09 авг 2012, 22:11

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

Сообщение magsim »

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

Код: Выделить всё

<?$id = $_GET['viewer_id'];require 'vkapi.class.php'; $api_id = 3055371; // Insert here id of your application$secret_key = '0ugvIX3eMkuvgodXHYOV'; // Insert here secret key of your application $VK = new vkapi($api_id, $secret_key); $resp = $VK->api('photos.getAlbums', array('uids'=>$id)); print_r($resp);echo $id;?>
Вывод:

Код: Выделить всё

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
 
В чем может быть ошибка?

 
 
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

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

Сообщение Александр »

magsim
Внимательнее к документации http://vk.com/developers.php?oid=-1&p=photos.getAlbums
uid, а не uids.
andrei2295kmail
Сообщения: 188
Зарегистрирован: 07 ноя 2011, 10:51

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

Сообщение andrei2295kmail »

у меня такаже проблема, все вроде правильно прописал,
но не работает
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

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

Сообщение Александр »

andrei2295kmail
Что не работает то? Конкретнее. Что делаешь, что в ответ получаешь?
Ответить