public function setWechatMenu() { $menuObj = new Menu($this->appId, $this->secret); // menus 是你自己后台管理中心表单post过来的一个数组 $menus = [["name" => "博客", "type" => 'view', "key" => 'http://120.24.48.77/'], ["name" => "更多", "type" => null, "key" => null, "buttons" => [["name" => "GitHub", "type" => "view", "key" => "https://github.com/Vzina"], ["name" => "微博", "type" => "view", "key" => "http://weibo.com/vzian"]]]]; $target = []; // 构建你的菜单 foreach ($menus as $menu) { // 创建一个菜单项 $item = new MenuItem($menu['name'], $menu['type'], $menu['key']); // 子菜单 if (!empty($menu['buttons'])) { $buttons = []; foreach ($menu['buttons'] as $button) { $buttons[] = new MenuItem($button['name'], $button['type'], $button['key']); } $item->buttons($buttons); } $target[] = $item; } $menuObj->set($target); // 失败会抛出异常 // Log::info($menuObj->get()); // return Redirect::back()->withMessage('菜单设置成功!'); }
public function set_menu(Request $request) { // $menus = $request->menus; // dd( $menus[0]); $menu = new Menu($this->app_id, $this->secret); $menus = $request->menus; // menus 是你自己后台管理中心表单post过来的一个数组 $target = []; // 构建你的菜单 foreach ($menus as $m) { // 创建一个菜单项 $item = new MenuItem($m['name'], $m['type'], $m['key']); // 子菜单 if (!empty($m['buttons'])) { $buttons = []; foreach ($m['buttons'] as $button) { if ($button['name'] != '') { $buttons[] = new MenuItem($button['name'], $button['type'], $button['key']); } } $item->buttons($buttons); } $target[] = $item; } // dd($target); $menu->set($target); // 失败会抛出异常 Cache::forget('wyshop_admin_wechat_menus'); return back()->with('info', '您已成功设置菜单,请取消关注后,再重新关注~'); }
/** * Execute the console command. * * @return mixed */ public function handle() { $baseUrl = $this->ask('请输入微信菜单的Base url:'); $button = new MenuItem("会员服务"); $menus = array(new MenuItem("预约课程", 'view', $baseUrl . '/stores'), $button->buttons(array(new MenuItem('我的预约', 'view', $baseUrl . '/members/reserve'), new MenuItem('会员中心', 'view', $baseUrl . '/members')))); try { $this->menuService->set($menus); // 请求微信服务器 $this->info('微信菜单设置成功'); } catch (\Exception $e) { $this->error('微信菜单设置失败!' . $e->getMessage()); } }
function create_f() { $button1 = new MenuItem("房观察"); $button2 = new MenuItem("拓居会"); $button3 = new MenuItem("拓居经纪"); $menus = array($button1->buttons(array(new MenuItem('房市道', 'view', 'http://tuojuhui.echenxin.com/index.php?c=list&cid=5'), new MenuItem('战略咨策', 'view', 'http://tuojuhui.echenxin.com/index.php?c=list&cid=6'), new MenuItem('房财金', 'view', 'http://tuojuhui.echenxin.com/index.php?c=list&cid=7'), new MenuItem('建筑装潢', 'view', 'http://tuojuhui.echenxin.com/index.php?c=list&cid=8'), new MenuItem('房业服务', 'view', 'http://tuojuhui.echenxin.com/index.php?c=list&cid=9'))), $button2->buttons(array(new MenuItem('中国房投', 'view', 'http://tuojuhui.echenxin.com/index.php?c=list&cid=10'), new MenuItem('海外房投', 'view', 'http://tuojuhui.echenxin.com/index.php?c=list&cid=12'), new MenuItem('会员活动', 'view', 'http://tuojuhui.echenxin.com/index.php?c=list&cid=11'), new MenuItem('看房服务', 'view', 'http://tuojuhui.echenxin.com/index.php?c=list&cid=14'))), $button3->buttons(array(new MenuItem('拓居介绍', 'view', 'http://tuojuhui.echenxin.com/index.php?c=list&cid=13'), new MenuItem('我要推荐', 'view', 'http://tuojuhui.echenxin.com/index.php?c=home&f=index'), new MenuItem('经纪会员入口', 'view', 'http://tuojuhui.echenxin.com/index.php?c=login&')))); try { $this->_M->set($menus); // 请求微信服务器 echo '设置成功!'; } catch (\Exception $e) { echo '设置失败:' . $e->getMessage(); } }
public function menu() { $menu = new Menu('wx8e883164d9342b1f', 'e73145bd0fdef28ea54b0b3608061c33'); $m = $menu->get(); var_dump($m); exit; $button = new MenuItem("菜单"); $menus = array(new MenuItem("今日歌曲", 'click', 'V1001_TODAY_MUSIC'), $button->buttons(array(new MenuItem('搜索', 'view', 'http://www.soso.com/'), new MenuItem('视频', 'view', 'http://v.qq.com/'), new MenuItem('赞一下我们', 'click', 'V1001_GOOD')))); try { $menu->set($menus); // 请求微信服务器 echo '设置成功!'; } catch (\Exception $e) { echo '设置失败:' . $e->getMessage(); } }
private function initialMenu($appId, $secret, $agentId) { //Logger::info('FunnyGuessServer', 'initializing menu ...'); $menuService = new Menu($appId, $secret, $agentId); $roomButton = new MenuItem('游戏房间'); $hostButton = new MenuItem('主持人'); $aboutButton = new MenuItem('关于'); $menus = array($roomButton->buttons(array(new MenuItem('创建房间', 'click', 'CREATE_ROOM'), new MenuItem('加入房间', 'click', 'JOIN_ROOM'), new MenuItem('离开房间', 'click', 'LEAVE_ROOM'))), $hostButton->buttons(array(new MenuItem('再来一词', 'click', 'NEW_WORD'), new MenuItem('提示一下', 'click', 'TIPS'), new MenuItem('申请主持', 'click', 'APPLY_HOST'))), $aboutButton->buttons(array(new MenuItem('游戏规则', 'click', 'RULES')))); try { //Logger::info('FunnyGuessServer', 'try to set menu ...'); $menuService->set($menus); //Logger::info('FunnyGuessServer', 'success to set menu!'); } catch (\Exception $e) { Logger::info('FunnyGuessServer', 'fail to set menu:' . $e->getMessage()); } }
/** * 微信公众号自定义菜单设置 * * @param string $appId 微信公众号应用ID * @param string $openId 用户OpenId * * @return array 用户信息 */ public function createMenu(Request $request) { if ($request->isMethod('post')) { $app = WechatApp::getAppById($request->appId); if (isset($app)) { $menuService = new Menu($app['app_id'], $app['app_secret']); $button = new MenuItem("菜单"); $menus = array(new MenuItem("选项1", 'click', 'V1001_TODAY_MUSIC'), $button->buttons(array(new MenuItem('搜索', 'view', 'http://www.soso.com/'), new MenuItem('视频', 'view', 'http://v.qq.com/'), new MenuItem('赞一下我们', 'click', 'V1001_GOOD')))); try { $menuService->set($menus); // 请求微信服务器 echo '创建菜单成功!'; } catch (\Exception $e) { echo '创建菜单失败:' . $e->getMessage(); } } } }
/** * 设置菜单 * * @param Menu $menuService * @return mixed * @throws \Overtrue\Wechat\Exception */ public function sendItemAction(Menu $menuService) { $menus = [["name" => "学无止境", "type" => "click", "key" => "学无止境"], ["name" => "慢生活", "type" => "click", "key" => "慢生活"], ["name" => "其他", "type" => null, "key" => null, "buttons" => [["name" => "GitHub", "type" => "view", "key" => "https://github.com/icowan"], ["name" => "博客", "type" => "view", "key" => "http://lattecake.com"]]]]; $target = []; /** @var $menu */ foreach ($menus as $menu) { // 创建一个菜单项 $item = new MenuItem($menu['name'], $menu['type'], $menu['key']); // 子菜单 if (!empty($menu['buttons'])) { $buttons = []; foreach ($menu['buttons'] as $button) { $buttons[] = new MenuItem($button['name'], $button['type'], $button['key']); } $item->buttons($buttons); } $target[] = $item; } $menuService->set($target); // 失败会抛出异常 return Redirect::back()->withMessage('菜单设置成功!'); }
/** * 格式化为微信菜单. * * @param array $menus 菜单 */ private function formatToWechat($menus) { $saveMenus = []; foreach ($menus as $menu) { if (isset($menu['sub_button'])) { $menuItem = new MenuItem($menu['name']); $subButtons = []; foreach ($menu['sub_button'] as $subMenu) { $subButtons[] = new MenuItem($subMenu['name'], $subMenu['type'], $subMenu['key']); } $menuItem->buttons($subButtons); $saveMenus[] = $menuItem; } else { $saveMenus[] = new MenuItem($menu['name'], $menu['type'], $menu['key']); } } return $saveMenus; }
public function updateMenu() { // $this->show(json_encode(self::$_menus_conf)); // exit; $target = []; foreach ($this->_menus_conf as $menu) { if (isset($menu['buttons'])) { // 子菜单 $item = new MenuItem($menu['name']); $buttons = []; foreach ($menu['buttons'] as $button) { $buttons[] = new MenuItem($button['name'], $button['type'], $button['key']); } $item->buttons($buttons); } else { // 创建一个菜单项 $item = new MenuItem($menu['name'], $menu['type'], $menu['key']); } array_push($target, $item); } $this->_menu()->set($target); // 失败会抛出异常 $this->show('更新菜单成功'); }
public function setMenu(Menu $menu) { $button = new MenuItem("我的家电"); $menus = array($button->buttons(array(new MenuItem('设备列表', 'view', 'http://w.webbig.cn/device'), new MenuItem('添加设备', 'view', 'http://w.webbig.cn/device/addStep1'))), new MenuItem("产品服务", 'click', 'a'), new MenuItem("合作案例", 'click', 'b')); try { $menu->set($menus); // 请求微信服务器 echo '设置成功!'; } catch (\Exception $e) { echo '设置失败:' . $e->getMessage(); } return '菜单设置成功!'; }