menu.php,menu.php

// 引入请求网址

require_once("request.php");

// 要使用storage

use sinacloud\sae\Storage as Storage;

define("APPID","wx9bdc780b9673cf2e");

define("SECRET","f5a8570a60a826631e255178fa729411");

// 获取新的access_token的函数

function getNewAccess_TokenInfo() {

$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".APPID."&secret=".SECRET;

$response = httpGet($url);

return $response;

}

echo getAccessToken();

// 获取access_token的函数

function getAccessToken() {

// 让$responseObject等于storage中access_token的返回值

$responseObject = readAccessTokenInfoFromStorage();

if ($responseObject == false) {

// 如果没有,就获取access_token 其实是获取到json串

$res = getNewAccess_TokenInfo();

// 解析json串

$obj = json_decode($res);

// 获取access_token和expries_in

$access_token = $obj->access_token;

$expires_in = $obj->expires_in;

// 先获取当前的时间 1970.1.1 00:00:00 到现在有多少秒

$current_time = time();

// 得到过期的时间点

$expires_time = $current_time + $expires_in - 200;

// 存储到

// 创建一个空的数组的对象 (强行转换为对象)

$saveObj = (object)array();

// 将我们要存储的东西存入

$saveObj->access_token = $access_token;

$saveObj->expires_time = $expires_time;

// 转换成json串

$saveString = json_encode($saveObj);

// 创建一个storage对象

$s = new Storage();

// 获取bucket

$bucket = $s->getBucket("bucket");

// 如果bucket不存在就创建bucket

if ($bucket == false) {

$s->putBucket("bucket",".r:*");

}

// 写入操作

$s->putObject($saveString,"bucket","access_token.txt",array(),array("Content-Type"=>"text/plain;charset=utf-8"));

return $access_token;

} else {

// 如果存有便获取access_token 和 expires_in

$access_token = $responseObject->access_token;

$expires_time = $responseObject->expires_time;

// 获取当前的时间

$current_time = time();

// 判断是否过期

if ($current_time>=$expires_time) {

// 如果已经过期了 重新获取

$res = getNewAccess_TokenInfo();

$obj = json_decode($res);

// 获取access_token和expires_in

$access_token = $obj->access_token;

$expires_in = $obj->expires_in;

$expires_time = $current_time + $expries_in - 200;

// 写入

$saveObj = (object)array();

$saveObj->access_token = $access_token;

$saveObj->expires_time = $expires_time;

// 将对象转换成json串

$saveString = json_encode($saveObj);

// 写入bucket

$s = new Storage();

// 先获取bucket

$bucket = $s->getBucket("bucket");

if ($bucket == false) {

$s->putBucket("bucket",".r:*");

}

// 写入

$s->putObject($saveString,"bucket","access_token.txt",array(),array("Content-Type"=>"text/plain;charset=utf-8"));

return $access_token;

} else {

return $access_token;

}

}

}

function readAccessTokenInfoFromStorage(){

// 先判断bucket中有没有access_token

// 如果存储了并且没有过期 直接使用

// 如果过期了就重新获取并存储

$s = new storage();

// 获取 bucket @符号取消用户警告

$bucket = @$s->getBucket("bucket");

if ($bucket == false) {

return false;

} else {

$object = $s->getObject("bucket","access_token.txt");

// 将json转换为$object返回 读取出的文件中有几个部分,其中内容部分中的下标为body

return json_decode($object->body);

}

}

createMenu();

// 创建自定义菜单

function createMenu() {

$access_token = getAccessToken();

// 将access_token传入到网址中

$url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token={$access_token}";

// post请求所需的参数

$postdata = '{

"button":[

{

"name":"点击事件",

"sub_button":[

{

"type":"click",

"name":"每日一文",

"key":"sendText"

},{

"type":"click",

"name":"每日一图",

"key":"sendImage"

},{

"type":"click",

"name":"每日一段",

"key":"sendVoice"

},{

"type":"click",

"name":"每日一片",

"key":"sendVideo"

}

]

},{

"name":"扫码和相册",

"sub_button":[

{

"type":"scancode_push",

"name":"扫码推事件",

"key":"scancode"

},{

"type":"scancode_waitmsg",

"name":"扫码带提示",

"key":"scancode"

},{

"type":"pic_sysphoto",

"name":"系统拍照发图",

"key":"photo"

},{

"type":"pic_photo_or_album",

"name":"拍照或相册发图",

"key":"rselfmenu"

},{

"type":"pic_weixin",

"name":"微信相册发图",

"key":"rselfmenu"

}

]

},{

"name":"其他",

"sub_button":[

{

"type":"view",

"name":"更多欢乐",

"url":"http://1.happyer.applinzi.com/phone_one.html",

},{

"name":"我在这儿",

"type":"location_select",

"key":"location_select"

}

]

}

]

}';

// 得到返回值

$response = httpPost($url,$postdata);

return $response;

}

?>

一键复制

编辑

Web IDE

原始数据

按行查看

历史

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值