Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
Hail
Сообщения: 35 Зарегистрирован: 11 авг 2010, 22:21
Сообщение
Hail » 18 мар 2011, 18:38
Здравствуйте!!! у меня вопрос такого плана как сделать так чтоб допустим код
Код: Выделить всё
<?require 'vkapi.class.php';define('API_ID', "ВОДИМ ID ПРИЛОЖЕНИЯ"); // ID вашего приложенияdefine('API_VERSION', "3.0"); // Версия API (на данный момент она равняется 3.0)define('API_SECRET', "Водим ЗАЩИЩЕННЫЙ КЛЮЧ"); // Тот самый защищённый ключ // Генерируем подлинный auth_key (для наглядности, назовём его secret_key)$secret_key = md5(API_ID . "_" . $_GET['viewer_id'] . "_" . API_SECRET); // вместо постоянной API_ID, можно воспользоваться полученной от сервера $_GET['api_id']. Разницы между этими значениями нет (если, конечно, запрос не фальшивый :)) // Если нет сессии (т.е. пользователь НЕ авторизирован), сравниваем наш подлинный secret_key с полученным auth_key, и при успехе ставим сессию user_id, содержащую id текущего пользователя.if (!$_SESSION['user_id']){ if ($_GET['auth_key'] == $secret_key) { $_SESSION['user_id'] = $_GET['viewer_id']; }}$method = "getProfiles";$sig = md5("api_id=" . API_ID . "method=" . $method . "uids=" . $_SESSION['user_id'] . "v=" . API_VERSION . API_SECRET);$user = simplexml_load_file("http://api.vkontakte.ru/api.php?api_id=" . API_ID . "&v=" . API_VERSION . "&method=" . $method . "&uids=" . $_SESSION['user_id'] . "&sig=" . $sig);$zname = $user->user->first_name;$zfam = $user->user->last_name;$zid = $user->user->uid;?>
работал со стороннего сайта допустим у меня приложения написано на iframe и я в него ещё вставляю допустим
Код: Выделить всё
<iframe src="www.site.ru/vip.php" width="100%" height="300"></iframe>
страница открывается всё нормально только не выводит имя фамилию ну и т.д помогите разобраться!!! Заранее Спасибо!!!
Александр
Создатель сайта
Сообщения: 4574 Зарегистрирован: 27 сен 2009, 16:45
Сообщение
Александр » 19 мар 2011, 16:38
Нужно передать параметры
Код: Выделить всё
<iframe src="www.site.ru/vip.php?auth_key=ЗНАЧЕНИЕ&viewer_id=ЗНАЧЕНИЕ" width="100%" height="300"></iframe>
Hail
Сообщения: 35 Зарегистрирован: 11 авг 2010, 22:21
Сообщение
Hail » 20 мар 2011, 14:23
извеняюсь за глупость но какое нужно вставить значение
Код: Выделить всё
<iframe src="www.site.ru/vip.php?auth_key=ВОТ ЗДЕСЬ&viewer_id=И ЗДЕСЬ" width="100%" height="300"></iframe>
Заранее огромное спасибо!!!
Александр
Создатель сайта
Сообщения: 4574 Зарегистрирован: 27 сен 2009, 16:45
Сообщение
Александр » 20 мар 2011, 14:36
auth_key и viewer_id.
Я не знаю чем ты генерируешь строку
Код: Выделить всё
<iframe src="www.site.ru/vip.php" width="100%" height="300"></iframe>
Наверное так
Код: Выделить всё
'<iframe src="www.site.ru/vip.php?auth_key='.$_GET['auth_key'].'&viewer_id='.$_GET['viewer_id'].'" width="100%" height="300"></iframe>
Hail
Сообщения: 35 Зарегистрирован: 11 авг 2010, 22:21
Сообщение
Hail » 20 мар 2011, 18:53
Что-то не получается вообщем делаю так:
index.php
Код: Выделить всё
<iframe src="http://site.ru/pril/vk/vk.php?auth_key='.$_GET['auth_key'].'&viewer_id='.$_GET['viewer_id'].'" width="100%" height="300"></iframe>
файл vk.php
Код: Выделить всё
<?require 'vkapi.class.php';define('API_ID', "ВОДИМ ID ПРИЛОЖЕНИЯ"); // ID вашего приложенияdefine('API_VERSION', "3.0"); // Версия API (на данный момент она равняется 3.0)define('API_SECRET', "Водим ЗАЩИЩЕННЫЙ КЛЮЧ"); // Тот самый защищённый ключ // Генерируем подлинный auth_key (для наглядности, назовём его secret_key)$secret_key = md5(API_ID . "_" . $_GET['viewer_id'] . "_" . API_SECRET); // вместо постоянной API_ID, можно воспользоваться полученной от сервера $_GET['api_id']. Разницы между этими значениями нет (если, конечно, запрос не фальшивый :)) // Если нет сессии (т.е. пользователь НЕ авторизирован), сравниваем наш подлинный secret_key с полученным auth_key, и при успехе ставим сессию user_id, содержащую id текущего пользователя.if (!$_SESSION['user_id']){ if ($_GET['auth_key'] == $secret_key) { $_SESSION['user_id'] = $_GET['viewer_id']; }}$method = "getProfiles";$sig = md5("api_id=" . API_ID . "method=" . $method . "uids=" . $_SESSION['user_id'] . "v=" . API_VERSION . API_SECRET);$user = simplexml_load_file("http://api.vkontakte.ru/api.php?api_id=" . API_ID . "&v=" . API_VERSION . "&method=" . $method . "&uids=" . $_SESSION['user_id'] . "&sig=" . $sig);$zname = $user->user->first_name;$zfam = $user->user->last_name;$zid = $user->user->uid;echo $zname;?>
ну чёт не выводит Имя пожалуйста выручайте!!!
Александр
Создатель сайта
Сообщения: 4574 Зарегистрирован: 27 сен 2009, 16:45
Сообщение
Александр » 22 мар 2011, 23:20
Hail
Это весь код в файле index.php ?
Какой файл указан у тебя в настройках приложения? В чем смысл делать iframe в айфрейме?
Hail
Сообщения: 35 Зарегистрирован: 11 авг 2010, 22:21
Сообщение
Hail » 23 мар 2011, 13:42
нет в index.php там у меня основное приложение и я хочу в него вставить чат методом iframe так как если я чат вставляю в основной код у меня возникает конфликт и ошибки!!!! ну и для того чтоб не путаться в коде!!!! Помогите пожалуйста Александр!!!
Александр
Создатель сайта
Сообщения: 4574 Зарегистрирован: 27 сен 2009, 16:45
Сообщение
Александр » 23 мар 2011, 21:10
Hail
Ну я же не вижу твоего кода! Может ты абсолютно неверно пишешь код.
Код: Выделить всё
<?// твой php код echo '<iframe src="http://site.ru/pril/vk/vk.php?auth_key='.$_GET['auth_key'].'&viewer_id='.$_GET['viewer_id'].'" width="100%" height="300"></iframe>'; // твой php код?>
Если конфликты и ошибки, то упрощай код.
Hail
Сообщения: 35 Зарегистрирован: 11 авг 2010, 22:21
Сообщение
Hail » 23 мар 2011, 22:26
Спасибо огромное всё отлично работает!!!