Ejemplo n.º 1
0
 public function serve(Server $server)
 {
     // 监听所有类型
     $server->on('event', 'click', function ($event) {
         $appId = Config::get('wechat.app_id');
         $appSecret = Config::get('wechat.secret');
         $access_token = $this->access_token;
         $message = '';
         $media = new media($appId, $appSecret);
         $arr = $media->lists('news', '0', '20');
         if ($event['EventKey'] == 'a') {
             $media_id = '3gp3sK9--7rGxLoN_n78eYEDWwXJEB52EGa5QqvvAe8';
         } else {
             if ($event['EventKey'] == 'b') {
                 $media_id = 'dk6HHcmPn8H907So8ayA5UAd3K6i48AwZdMFE_5aV3I';
             }
         }
         foreach ($arr['item'] as $v) {
             if ($v['media_id'] == $media_id) {
                 foreach ($v['content']['news_item'] as $val) {
                     $title = $val['title'];
                     $digest = $val['digest'];
                     $url = $val['url'];
                     $imgid = $val['thumb_media_id'];
                     $imgurl = 'https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=' . $access_token;
                     $array = array('type' => 'image', 'offset' => '0', 'count' => '20');
                     $array = json_encode($array);
                     $response = Curl::post($imgurl, array(), $array);
                     $arr = json_decode($response);
                     foreach ($arr->item as $k) {
                         if ($k->media_id == $imgid) {
                             $imgurl = $k->url;
                         }
                     }
                     $message[] = Message::make('news_item')->title($title)->description($digest)->url($url)->picUrl($imgurl);
                 }
             }
         }
         $this->message = $message;
         if ($event['EventKey'] == 'a') {
             return Message::make('news')->items(function () {
                 $mes = array();
                 foreach ($this->message as $v) {
                     array_push($mes, $v);
                 }
                 return $mes;
             });
         } else {
             if ($event['EventKey'] == 'b') {
                 return Message::make('news')->items(function () {
                     $mes = array();
                     foreach ($this->message as $v) {
                         array_push($mes, $v);
                     }
                     return $mes;
                 });
             }
         }
     });
     $server->on('message', function ($message) {
         return "欢迎关注 Skyware!";
     });
     $result = $server->serve();
     echo $result;
 }