Страница 1 из 2

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

Добавлено: 27 июн 2010, 16:37
Александр
Статус приложения на странице пользователя (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

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

Добавлено: 27 июн 2010, 23:19
Darkin
Хы, только поднял сегодня эту тему. спасибо :)

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

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

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

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

И еще, как защититься от того, чтобы любой не мог подставить ид и статус и тем самым изменить статус любого пользователя?
Думал о проверке на страничке на соответствие ид в запросе, и текущего ид пользователя, но реализация храмает.
Заранее спасибо за ответы.

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

Добавлено: 31 июл 2010, 08:06
Doker
сделай чтобы сверялся auth_key

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

Добавлено: 31 июл 2010, 11:53
lewka151
эту строку тоже меняй

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

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

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

<form action="appstatus.php" method="get">

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

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

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

iconv("windows-1251","utf-8",$txt);

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

Добавлено: 31 июл 2010, 15:59
Александр
lol123
Можешь попробовать поменять кодировку php файла на utf8.

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

Добавлено: 31 июл 2010, 16:21
lol123
Александр, спасибо за ответ. Так сделал с самого начала. Никакого результата.

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

Добавлено: 31 июл 2010, 16:42
Влад

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

$s = "ололо";$s = iconv("CP1251", "UTF-8", $s);

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

Добавлено: 31 июл 2010, 16:55
lol123
Влад, у меня хорошо отправляет, если в строку вручную ввести текст русский. Но если он грузиться из текстового поля - крякозябры.