Статус приложения (secure.saveAppStatus)

Темы только для ознакомления. Уроки по использованию старой версии ВКонтакте API и устаревших методов.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Статус приложения (secure.saveAppStatus)

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

Статус приложения на странице пользователя (secure.saveAppStatus)
PHP

Скрипт устанавливает статус приложения пользователю.

Для взаимодействия с api.vkontakte.ru используется VkApi.class.php. Находиться в архиве с исходником.

Для того чтобы скрипт работал, необходим хостинг с поддержкой PHP и CURL. Проверить поддержку CURL можно таким способом http://flapps.ru/forum/topic144.html

1. Создаем PHP файл.
Его можно создать даже в стандартном блокноте.
Пишем код:

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

<?php/*     http://flapps.ru/forum/ - форум о создании флеш приложений на основе ВКонтакте API */ $app_id = '743131';$api_secret = 'qwertyuiopasdfghjklzxcvbnm'; if (isset($_POST['send'])) {require('VkApi.class.php');$api = new VkApiNode($app_id, $api_secret); $uid = $_POST['uid'];$status = $_POST['status'];$query = $api->saveAppStatus($uid, $status); $ch = curl_init();curl_setopt($ch, CURLOPT_URL, $query);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_TIMEOUT, 10);curl_exec($ch);curl_close($ch); echo "Статус установлен!"; }else {?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Установить статус приложения пользователю (saveAppStatus)</title></head><body><h1>Установить статус приложения пользователю (saveAppStatus)</h1>Приложение <? echo '<a href="http://vkontakte.ru/app'.$app_id.'">http://vkontakte.ru/app'.$app_id.'</a>'; ?><br /><br /><form action="appstatus.php" method="post">ID пользователя: <input name="uid" type="text" value="1"/><br /><br />Статус: <input name="status" type="text" size="35" maxlength="32"/> (максимум 32 символа)<br /><br /><button name="send" type="submit">Установить</button></form></body></html><? } ?>
Изменяем на свои данные:
$app_id - ID приложения
$api_secret - защищенный ключ приложения

Сохраняем например, под именем appstatus.php. В кодировке UTF-8 (без BOM).


2. Создаем файл crossdomain.xml
Так же можно создать в блокноте. В нем пишем:

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

<cross-domain-policy><allow-access-from domain="*.vkontakte.ru" /><allow-access-from domain="*.vk.com" /></cross-domain-policy>

3. Загружаем файлы
appstatus.php и VkApi.class.php в любой каталог на сервере.
Файл crossdomain.xml загружаем в корневой каталог сайта.


4. Открываем в браузере ссылку на загруженный на сервер скрипт appstatus.php.


5. Вводим ID пользователя, текст статуса и нажимаем кнопку "Установить".
Статус будет установлен.

Исходник http://flapps.ru/example/appstatus.rar
Darkin
Сообщения: 10
Зарегистрирован: 24 июн 2010, 09:25

Re: Статус приложения (secure.saveAppStatus)

Сообщение Darkin »

Хы, только поднял сегодня эту тему. спасибо :)
lol123
Сообщения: 36
Зарегистрирован: 18 фев 2010, 17:19

Re: Статус приложения (secure.saveAppStatus)

Сообщение lol123 »

Странно. Хочу чтобы статус менялся при запросе типу
site.ru?uid=1&status=olololo
Использую вот такой код:

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

$uid = $_GET['uid'];$status = $_GET['status'];$query = $api->saveAppStatus($uid, $status);
Но не происходит ничего после запроса.

И еще, как защититься от того, чтобы любой не мог подставить ид и статус и тем самым изменить статус любого пользователя?
Думал о проверке на страничке на соответствие ид в запросе, и текущего ид пользователя, но реализация храмает.
Заранее спасибо за ответы.
Аватара пользователя
Doker
Модератор
Модератор
Сообщения: 1026
Зарегистрирован: 07 май 2010, 18:53

Re: Статус приложения (secure.saveAppStatus)

Сообщение Doker »

сделай чтобы сверялся auth_key
Аватара пользователя
lewka151
Сообщения: 54
Зарегистрирован: 16 фев 2010, 21:01

Re: Статус приложения (secure.saveAppStatus)

Сообщение lewka151 »

эту строку тоже меняй

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

if (isset($_GET['send'])) {
и

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

<form action="appstatus.php" method="get">
lol123
Сообщения: 36
Зарегистрирован: 18 фев 2010, 17:19

Re: Статус приложения (secure.saveAppStatus)

Сообщение lol123 »

Такс ребят. Работает отсылает вроде бы, плюсанул обеих. Теперь опять казус. Если текст брать из текстового поля - приходит абракадабра в статус.
Что с кодировками делать то?
В Embed Fonts пихаю все, что только можно - результата ноль.
в РНР файле меняю кодировку и тоже ноль.

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

iconv("windows-1251","utf-8",$txt);
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Статус приложения (secure.saveAppStatus)

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

lol123
Можешь попробовать поменять кодировку php файла на utf8.
lol123
Сообщения: 36
Зарегистрирован: 18 фев 2010, 17:19

Re: Статус приложения (secure.saveAppStatus)

Сообщение lol123 »

Александр, спасибо за ответ. Так сделал с самого начала. Никакого результата.
Аватара пользователя
Влад
Модератор
Модератор
Сообщения: 654
Зарегистрирован: 29 апр 2010, 22:24

Re: Статус приложения (secure.saveAppStatus)

Сообщение Влад »

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

$s = "ололо";$s = iconv("CP1251", "UTF-8", $s);
lol123
Сообщения: 36
Зарегистрирован: 18 фев 2010, 17:19

Re: Статус приложения (secure.saveAppStatus)

Сообщение lol123 »

Влад, у меня хорошо отправляет, если в строку вручную ввести текст русский. Но если он грузиться из текстового поля - крякозябры.
Ответить