Кнопка "Поблагодарить за приложение"

Темы только для ознакомления. Уроки по использованию старой версии ВКонтакте API и устаревших методов.
husky2
Сообщения: 7
Зарегистрирован: 23 мар 2010, 23:19

Re: Кнопка "Поблагодарить за приложение"

Сообщение husky2 »

Да там вообще PHP код не правильный, он требует загрузки данных "Class.php" а где их найти хз!?!?

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

 require('VkApi.class.php');
У меня лично не получается сделать эту кнопку, по нажатию на неё ничего не случается, хотя перепробывал всё!
Аватара пользователя
Влад
Модератор
Модератор
Сообщения: 654
Зарегистрирован: 29 апр 2010, 22:24

Re: Кнопка "Поблагодарить за приложение"

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

husky2 ты в курсе что нужно качать VkApi.class.php? Он одинаковый у всех и всегда!
Аватара пользователя
Влад
Модератор
Модератор
Сообщения: 654
Зарегистрирован: 29 апр 2010, 22:24

Re: Кнопка "Поблагодарить за приложение"

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

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

<?/** * Класс обертка, для VkApi. Здесь описываются методы для запросов. * * @package VkApi * @author  Vlad       id19254612  */class VkApiNode{    /**     * Конструктор класса. Принимает обязательные $api_id (Id приложения) и     * $secret (секретный код приложения).      *      * @param   integer $api_id     Id приложения.     * @param   string  $secret     Секретный код приложения.     * @param   string  $format     Формат ответа (XML или JSON). По умолчанию, 'XML'.     * @param   string  $version    Версия API. По умолчанию, '2.0'.     * @param   string  $server_url Адрес сервера API. По умолчанию 'http://api.vkontakte.ru/api.php?'.     * @param   mixed   $timestamp  Timestamp сервера. Если не задано - берется системное.     * @param   mixed   $random     Случайное значение. Если не задано - задается через rand().     */    public function __construct ($api_id,                                    $secret,                                     $format = 'XML',                                    $version = '2.0',                                    $server_url = 'http://api.vkontakte.ru/api.php?',                                    $timestamp = false,                                    $random = false)    {        $this->api_id = $api_id;        $this->method = $method;        $this->secret = $secret;        $this->format = $format;        $this->version = $version;        $this->server_url = $server_url;        $this->timestamp = $timestamp ? $timestamp : time();        $this->random = $random ? $random : rand();    }        /**     * Отправляет уведомления пользователям. Для того, чтобы пользователь получил уведомление     * необходимо, чтобы у него было разрешено получение уведомлений в настройках.     * @see http://vkontakte.ru/pages.php?o=-1&p=secure.sendNotification         *      * @param   mixed   $uids       Id пользователей (массив до 100 чисел или число).     * @param   string  $message    Текст сообщения.     *     * @return  string  Строка запроса.         */    public function sendNotification ($uids, $message)    {        $api = new VkApi($this->api_id,                            'secure.sendNotification',                            $this->secret,                            $this->format,                            $this->version,                            $this->server_url,                            $this->timestamp,                            $this->random);        $api->addParameter('uids', join(',', $uids));        $api->addParameter('message', $message);        return $api->getQuery();    }        /**     * Сохраняет строку статуса приложения для последующего вывода в     * общем списке приложений на странице пользоваетеля.     * @see http://vkontakte.ru/pages.php?o=-1&p=secure.saveAppStatus     *      * @param   integer $uid    Id пользователя.     * @param   string  $status Текст статуса. Строка до 32 символов.     *     * @return  string  Строка запроса.         */    public function saveAppStatus ($uid, $status)    {        $api = new VkApi($this->api_id,                            'secure.saveAppStatus',                            $this->secret,                            $this->format,                            $this->version,                            $this->server_url,                            $this->timestamp,                            $this->random);        $api->addParameter('uid', $uid);        $api->addParameter('status', $status);        return $api->getQuery();    }     public function getAppStatus ($uid)    {        $api = new VkApi($this->api_id,                            'secure.getAppStatus',                            $this->secret,                            $this->format,                            $this->version,                            $this->server_url,                            $this->timestamp,                            $this->random);        $api->addParameter('uid', $uid);        return $api->getQuery();    }        /**     * Возвращает платежный баланс приложения.     * @see http://vkontakte.ru/pages.php?o=-1&p=secure.getAppBalance     *     * @return  string  Строка запроса.         */    public function getAppBalance ()    {        $api = new VkApi($this->api_id,                            'secure.getAppBalance',                            $this->secret,                            $this->format,                            $this->version,                            $this->server_url,                            $this->timestamp,                            $this->random);        return $api->getQuery();    }     /**     * Возвращает баланс пользователя на счету приложения.     * @see http://vkontakte.ru/pages.php?o=-1&p=secure.getBalance     *      * @param   integer $uid    Id пользователя.     *     * @return  string  Строка запроса.         */    public function getBalance ($uid)    {        $api = new VkApi($this->api_id,                            'secure.getBalance',                            $this->secret,                            $this->format,                            $this->version,                            $this->server_url,                            $this->timestamp,                            $this->random);        $api->addParameter('uid', $uid);        return $api->getQuery();    }     /**     * Переводит голоса со счета приложения на счет пользователя.     * @see http://vkontakte.ru/pages.php?o=-1&p=secure.addVotes     *      * @param   integer $uid    Id пользователя.     * @param   integer $votes  Количество голосов (в 100 долях).     *     * @return  string  Строка запроса.         */    public function addVotes ($uid, $votes)    {        $api = new VkApi($this->api_id,                            'secure.addVotes',                            $this->secret,                            $this->format,                            $this->version,                            $this->server_url,                            $this->timestamp,                            $this->random);        $api->addParameter('uid', $uid);        $api->addParameter('votes', $votes);        return $api->getQuery();    }     /**     * Списывает голоса со счета пользователя на счет приложения.     * @see http://vkontakte.ru/pages.php?o=-1&p=secure.withdrawVotes     *      * @param   integer $uid    Id пользователя.     * @param   integer $votes  Количество голосов (в 100 долях).     *     * @return  string  Строка запроса.         */    public function withdrawVotes ($uid, $votes)    {        $api = new VkApi($this->api_id,                            'secure.withdrawVotes',                            $this->secret,                            $this->format,                            $this->version,                            $this->server_url,                            $this->timestamp,                            $this->random);        $api->addParameter('uid', $uid);        $api->addParameter('votes', $votes);        return $api->getQuery();    }     /**     * Переводит голоса со счета одного пользователя на счет другого в рамках приложения.     * @see http://vkontakte.ru/pages.php?o=-1&p=secure.transferVotes     *      * @param   integer $uid_from   Id пользователя, от которого переводятся голоса.     * @param   integer $uid_to     Id пользователя, которому переводятся голоса.     * @param   integer $votes      Количество голосов (в 100 долях).     *      * @return  string  Строка запроса.         */    public function transferVotes ($uid_from, $uid_to, $votes)    {        $api = new VkApi($this->api_id,                            'secure.transferVotes',                            $this->secret,                            $this->format,                            $this->version,                            $this->server_url,                            $this->timestamp,                            $this->random);        $api->addParameter('uid_from', $uid_from);        $api->addParameter('uid_to', $uid_to);        $api->addParameter('votes', $votes);        return $api->getQuery();    }     /**     * Возвращает историю транзакций внутри приложения.     * @see http://vkontakte.ru/pages.php?o=-1&p=secure.getTransactionsHistory     *      * @param   integer $type   Тип возвращаемых транзакций.      * 0 – все транзакции, 1 – транзакции типа "пользователь > приложение",     * 2 – транзакции типа "приложение > пользователь", 3 – транзакции типа "пользователь > пользователь"      * @param   integer $uid_from   Фильтр по Id пользователя, с баланса которого снимались голоса.     * @param   integer $uid_to     Фильтр по Id пользователя, на баланс которого начислялись голоса.     * @param   integer $date_from  Фильтр по дате начала. Задается в виде UNIX-time.     * @param   integer $date_to    фильтр по дате конца. Задается в виде UNIX-time.     * @param   integer $limit      Количество возвращаемых записей. По умолчанию 1000.     *     * @return  string  Строка запроса.         */    public function getTransactionsHistory ($type = 0, $uid_from = null, $uid_to = null, $date_from = null, $date_to = null, $limit = 1000)    {        $api = new VkApi($this->api_id,                            'secure.getTransactionsHistory',                            $this->secret,                            $this->format,                            $this->version,                            $this->server_url,                            $this->timestamp,                            $this->random);        if($type)            $api->addParameter('type', $type);        if($uid_from)            $api->addParameter('uid_from', $uid_from);        if($uid_to)            $api->addParameter('uid_to', $uid_to);        if($date_from)            $api->addParameter('date_from', $date_from);        if($date_to)            $api->addParameter('date_to', $date_to);        if($limit)            $api->addParameter('limit', $limit);        return $api->getQuery();    }    } /** * Класс VkApi. Для каждого запроса создается экземпляр данного класса, * задаются метод API и параметры запроса и вызывается getQuery метод.   * * @package VkApi * @author  Michael Elovskih <wronglink@gmail.com> */class VkApi{       /**     * Конструктор класса.     *      * @param   integer $api_id     Id приложения.     * @param   string  $method     Название метода API.     * @param   string  $secret     Секретный код приложения.     * @param   string  $format     Формат ответа (XML или JSON).     * @param   string  $version    Версия API.     * @param   string  $server_url Адрес сервера API.     * @param   mixed   $timestamp  Timestamp сервера.     * @param   mixed   $random     Случайное значение.     */    public function __construct ($api_id,                                    $method,                                    $secret,                                     $format,                                    $version,                                    $server_url,                                    $timestamp,                                    $random)    {        $this->api_id = $api_id;        $this->method = $method;        $this->secret = $secret;        $this->format = $format;        $this->version = $version;        $this->server_url = $server_url;        $this->timestamp = $timestamp;        $this->random = $random;          $this->parameters = array();         $this->parameters[] = array('name' => 'api_id', 'value' => $this->api_id);        $this->parameters[] = array('name' => 'method', 'value' => $this->method);        $this->parameters[] = array('name' => 'format', 'value' => $this->format);        $this->parameters[] = array('name' => 'v', 'value' => $this->version);        $this->parameters[] = array('name' => 'timestamp', 'value' => $this->timestamp);        $this->parameters[] = array('name' => 'random', 'value' => $this->random);    }     /**     * __toString метод класса.     *     * @return  string  Строка запроса.         */    public function __toString ()    {        $this->parameters[] = array('name' => 'sig', 'value' => $this->getSig());         foreach($this->parameters as $p)             $query[] = $p['name'].'='.rawurlencode($p['value']);          return $this->server_url . join('&', $query);    }     /**     * Добавляет параметр запроса.     *      * @param   string  $p_name     Название параметра     * @param   string  $p_value    Значение параметра     */    public function addParameter ($p_name, $p_value)    {        $this->parameters[] = array('name' => $p_name, 'value' => $p_value);    }        /**     * Возвращает строку запроса.     *     * @return  string  Строка запроса.         */    public function getQuery ()    {        return $this->__toString();    }        /**     * Считает Sig-подпись приложения.     *      * @return  string  Sig-подпись приложения.     */    private function getSig ()    {        sort($this->parameters);                foreach($this->parameters as $p)            $sigStr .= join('=',$p);        return md5($sigStr . $this->secret);    }} ?>
Сохрани в блокнот и назови его VkApi.class.php и сохрани рядом с этим скриптом
Последний раз редактировалось bodnar 12 июн 2010, 19:21, всего редактировалось 1 раз.
Причина: Оформляйте код как положено! Пользуйтесь правкой! Сколько раз повторять?
fly
Сообщения: 26
Зарегистрирован: 07 ноя 2009, 21:43

Re: Кнопка "Поблагодарить за приложение"

Сообщение fly »

Noise Gate , а что за wrapper-заглушка про которую ты написал? Как она работает ?
Noise Gate
Сообщения: 691
Зарегистрирован: 28 апр 2010, 12:34

Re: Кнопка "Поблагодарить за приложение"

Сообщение Noise Gate »

fly
имитация переменных и методов контейнера для локального тестирования - чтобы не появлялось лишних ошибок
Mustafin.M
Сообщения: 166
Зарегистрирован: 09 май 2010, 08:49

Re: Кнопка "Поблагодарить за приложение"

Сообщение Mustafin.M »

Спасибо за урок!
Аватара пользователя
Евгений
FL Team
FL Team
Сообщения: 776
Зарегистрирован: 10 июн 2010, 11:01

Re: Кнопка "Поблагодарить за приложение"

Сообщение Евгений »

Извините за глупый вопрос... А что значит загрузить PHP у себя на сервер?!

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

Re: Кнопка "Поблагодарить за приложение"

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

Евгений
Да, загрузить на сайт.
Аватара пользователя
Евгений
FL Team
FL Team
Сообщения: 776
Зарегистрирован: 10 июн 2010, 11:01

Re: Кнопка "Поблагодарить за приложение"

Сообщение Евгений »

Александр,
Спасибо, сейчас попробую!
Аватара пользователя
Евгений
FL Team
FL Team
Сообщения: 776
Зарегистрирован: 10 июн 2010, 11:01

Re: Кнопка "Поблагодарить за приложение"

Сообщение Евгений »

Александр, мой сайт не поддерживает php.. может есть бесплатные сайты для загрузи php?
Ответить