Срочно нужна библиотека для работы с серверными методами ММ

Использование API других социальных сетей
Аватара пользователя
Dmitry
Сообщения: 70
Зарегистрирован: 05 дек 2009, 13:51

Срочно нужна библиотека для работы с серверными методами ММ

Сообщение Dmitry »

Кто предоставит, буду очень благодарен, интересует только Notifications.send

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

Re: Срочно нужна библиотека для работы с серверными методами ММ

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

MyApi.class.php
Кодировка UTF-8

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

<?class MyApiNode{    public function __construct ($app_id,                                    $secret,                                     $format = 'XML',                                    $secure = '1',                                    $server_url = 'http://www.appsmail.ru/platform/api?')    {        $this->app_id = $app_id;        $this->method = $method;        $this->secret = $secret;        $this->format = $format;        $this->secure = $secure;        $this->server_url = $server_url;    }        public function sendNotifications ($uids, $text)    {        $api = new MyApi($this->app_id,                            'notifications.send',                            $this->secret,                            $this->format,                            $this->secure,                            $this->server_url);        $api->addParameter('uids', join(',', $uids));        $api->addParameter('text', $text);        return $api->getQuery();    }}  class MyApi{       public function __construct ($app_id,                                    $method,                                    $secret,                                     $format,                                    $secure,                                    $server_url)    {        $this->app_id = $app_id;        $this->method = $method;        $this->secret = $secret;        $this->format = $format;        $this->secure = $secure;        $this->server_url = $server_url;          $this->parameters = array();         $this->parameters[] = array('name' => 'app_id', 'value' => $this->app_id);        $this->parameters[] = array('name' => 'method', 'value' => $this->method);        $this->parameters[] = array('name' => 'format', 'value' => $this->format);        $this->parameters[] = array('name' => 'secure', 'value' => $this->secure);    }     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);    }     public function addParameter ($p_name, $p_value)    {        $this->parameters[] = array('name' => $p_name, 'value' => $p_value);    }        public function getQuery ()    {        return $this->__toString();    }        private function getSig ()    {        sort($this->parameters);                foreach($this->parameters as $p)            $sigStr .= join('=',$p);        return md5($sigStr . $this->secret);    }} ?>
send.php
Кодировка UTF-8

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

<?phprequire('MyApi.class.php'); $app_id = '487011';$app_secret = '456b0bcc7af9e141b80f123f0a1abc58';  $uids = Array('236708913');$text = 'http://flapps.ru'; function get_url($query) {    $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);    return curl_exec($ch);    curl_close($ch);}  $api = new MyApiNode($app_id, $app_secret);$query = $api->sendNotifications($uids, $text);get_url($query); echo "sended";?>
Аватара пользователя
Volgar
Сообщения: 113
Зарегистрирован: 26 авг 2010, 18:56

Re: Срочно нужна библиотека для работы с серверными методами ММ

Сообщение Volgar »

я так понимаю, что если вызвать send.php напрямую с прописанными id приложения, секретным ключом, uids тому кому шлется уведомление, то оно должно дойти и будет отражаться в разделе "Уведомления" http://my.mail.ru/apps/notified ?
Что только не делал, никаких уведомлений не получаю когда шлю себе. :(
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Срочно нужна библиотека для работы с серверными методами ММ

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

Volgar
Если ты будешь получать эти данные через $_GET, то можно напрямую.
Что делал, что не получается?
Аватара пользователя
Volgar
Сообщения: 113
Зарегистрирован: 26 авг 2010, 18:56

Re: Срочно нужна библиотека для работы с серверными методами ММ

Сообщение Volgar »

Александр
Если ты будешь получать эти данные через $_GET, то можно напрямую.
Я их вручную как в вашем примере присвоил.
То есть:

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

$app_id = '487011';//Здесь id приложения, пробовал и проверенное и не проверенное.$app_secret = '456b0bcc7af9e141b80f123f0a1abc58';//Здесь секретный ключ, пробовал и приватный ключ$uids = Array('236708913');//Здесь свой uids$text = 'http://flapps.ru';//Любой текст
Потом заливал в папку с приложением (т. е. ресивер тоже там есть) и вызывал send.php в строке браузера. sended пишет, уведомление не приходит.

Вообще хочется побольше инфы именно о ММ и Фейсбук. Вконтакте имхо стагнирует:)
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Срочно нужна библиотека для работы с серверными методами ММ

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

Volgar
На твоём хостинге есть cURL?
Замени 24 строчку на

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

echo get_url($query);
Что пишет?
Аватара пользователя
Volgar
Сообщения: 113
Зарегистрирован: 26 авг 2010, 18:56

Re: Срочно нужна библиотека для работы с серверными методами ММ

Сообщение Volgar »

cURL есть.
Что пишет?
104 Incorrect signature sended

Видимо что-то не так с MyApi.class.php

Частая ошибка, кстати. Только что с большим трудом удалось вывести список друзей в TileList и все из-за Incorrect signature
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Срочно нужна библиотека для работы с серверными методами ММ

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

Volgar
Использовать нужно Секретный ключ.
Только что проверил скрипты из второго сообщения темы в приложении не из каталога - уведомления приходят. Проверь что все данные ты указал верно.
Для серверных методов ресивер не нужен.
Сделай вывод ещё и $query, посмотри, всё ли верно.
Аватара пользователя
Volgar
Сообщения: 113
Зарегистрирован: 26 авг 2010, 18:56

Re: Срочно нужна библиотека для работы с серверными методами ММ

Сообщение Volgar »

Александр
Да, заработало. Отлично, теперь можно написать скрипт, который берет из базы всех юзеров установивших приложение и шлет всем уведомления.
Спасибо.
Ответить