Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 31.10.2012, 19:57
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 1  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Question Нужен рабочий пример использования secure.sendNotification

Парни, кто-нибудь может помочь рабочим примером использования secure.sendNotification?
Нужен именно код, формирующий запрос к контактовскому серверу. Сам бы конечно разобрался, но сроки поджимают, а работы гора.

Буду очень признателен, тому, кто поделится кодом

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

Старый 31.10.2012, 21:57
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 2  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
PHP код:
<?php
class VKDataProvider {
    protected 
$api_id;
    protected 
$api_secret;
    protected 
$db;

    public function 
VKDataProvider($api_id$api_secret){
        
$this->api_id=$api_id;
        
$this->api_secret=$api_secret;
    }

    public static 
$SEND_NOTIFICATION     1;
    public static 
$SAVE_APP_STATUS         2;
    public static 
$GET_APP_BALANCE         3;
    public static 
$USER_GET_BALANCE        4;
    public static 
$WITH_DRAW_VOTES        5;
    public static 
$ADD_VOTES             6;
    public static 
$GET_TRANSACTIONS        7;

    
/*
        PUBLIC
    */

    
public function init($api_id$api_secret){
        
$this->api_id=$api_id;
        
$this->api_secret=$api_secret;
    }

    public function 
SendRequest($method$data){
        
$data $this->PrepareRequest($method,$data);
        
$ch $this->PrepareCurl($data);
        
$response curl_exec($ch);
        if(
$method==self::$WITH_DRAW_VOTES){
            
$file2=fopen("logfile.txt","a");
            
fwrite($file2," \n".$data['uid']." RAW VK Data:"$response);
        }
        
curl_close($ch);
        
$result json_decode($response,true);
        
        return 
$result;
    }

    
/*
        PRIVATE (PROTECTED)
    */
    
protected function PrepareCurl($postData){
        
$ch curl_init();
        
curl_setopt($chCURLOPT_URL"http://api.vkontakte.ru/api.php");
        
curl_setopt($chCURLOPT_HEADER0);
        
curl_setopt($chCURLOPT_CONNECTTIMEOUT,10);
        
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
        
curl_setopt($chCURLOPT_POST,1);
        
curl_setopt($chCURLOPT_POSTFIELDS,$postData);
        
/* REMOVE PROXY */
        //curl_setopt($ch, CURLOPT_PROXY, '192.168.0.2:8080');
        
return $ch;
    }

    protected function 
PrepareRequest($method$data){
        
$array = array();
        
$array['api_id'] = $this->api_id;
        
$array['random'] = mt_rand();
        
$array['timestamp'] = time();
        
$array['format'] = 'JSON';
        
$array['v']='2.0';
        
$array['method'] = $this->getMethod($method);

        
$array array_merge($array$data);

        
$array['sig'] = $this->Sign($array);
        return 
$array;
    }

    protected function 
getMethod($method){
        switch (
$method){
            case 
VKDataProvider::$SEND_NOTIFICATION:
                
$str 'sendNotification';
                break;
            case 
VKDataProvider::$SAVE_APP_STATUS:
                
$str 'saveAppStatus';
                break;
            case 
VKDataProvider::$GET_APP_BALANCE:
                
$str 'getAppBalance';
                break;
            case 
VKDataProvider::$USER_GET_BALANCE:
                
$str 'getBalance';
                break;
            case 
VKDataProvider::$WITH_DRAW_VOTES:
                
$str 'withdrawVotes';
                break;
            case 
VKDataProvider::$ADD_VOTES:
                
$str 'addVotes';
                break;
            case 
VKDataProvider::$GET_TRANSACTIONS:
                
$str 'getTransactionsHistory';
                break;
            default:
                
$str "error";
                break;
        }
        return 
'secure.'.$str;
    }
    protected function 
Sign($params){
        
$sparams $params;
        
ksort($sparams);

        
$string "";
        foreach (
$sparams as $key=>$value)
            
$string.=$key.'='.$value;

        return 
md5($string.$this->api_secret);
    }

}
?>
Пример использования:
PHP код:
$result $vk->SendRequest(VKDataProvider::$SEND_NOTIFICATION, array('uids'=>$uids,'message'=>$text)); 
За один запрос можно послать не более 100 уидов. Так же ограничено количество запросов в секунду к серверу АПИ ВК. Максимум для обычного приложения, по-моему, 10 запросов в секунду.

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:57.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 12:57.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.