Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- function request($url, $postfields = []) {
- $ch = curl_init($url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- if(!empty($postfields)) {
- curl_setopt($ch, CURLOPT_POST, true);
- curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postfields));
- }
- $json = curl_exec($ch);
- curl_close($ch);
- return json_decode($json, true);
- }
- function vkapi($m, $p = [], $o = false) {
- if(!isset($p['access_token'])) $p['access_token'] = '';
- if(!isset($p['v'])) $p['v'] = '5.95';
- return request("https://api.vk.com/method/{$m}", $p);
- }
- $lp = vkapi('groups.getLongPollServer', ['group_id' => 0])['response'];
- $server = $lp['server'];
- $key = $lp['key'];
- $baseurl = "{$server}?act=a_check&key={$key}&wait=25&mode=2&ts=%d";
- $url = sprintf($baseurl, $lp['ts']);
- while(true) {
- $result = request($url);
- if(!is_null($result)) {
- if(isset($result['ts'])) {
- if(isset($result['updates']) && !empty($result['updates'])) {
- $url = sprintf($baseurl, $result['ts']);
- $updates = $result['updates'];
- foreach($updates as $key => $u) {
- if($u['type'] != 'message_new') continue;
- echo "Получено сообщение\n";
- }
- } else {
- $url = sprintf($baseurl, $result['ts']);
- }
- } elseif(isset($result['failed'])) {
- echo "failed ({$result['failed']})\n";
- switch($result['failed']) {
- case 1:
- $url = sprintf($baseurl, $result['ts']);
- break;
- case 2: case 3:
- $lp = vkapi('groups.getLongPollServer', ['group_id' => 0])['response'];
- $server = $lp['server'];
- $key = $lp['key'];
- $baseurl = "{$server}?act=a_check&key={$key}&wait=25&mode=2&ts=%d";
- $url = sprintf($baseurl, $lp['ts']);
- break;
- default: break;
- }
- } else {
- echo json_encode($result, JSON_UNESCAPED_UNICODE)."\n";
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement