autojs脚本一键打开微信扫一扫

JavaScript05

autojs脚本一键打开微信扫一扫,第1张

toast("微信扫一扫 Tanghui") //本脚本在魅蓝 6上实测有效 //正常运行。根据机型不同,代码 //也需要做出适当调整 //并且打包成APP安装后使用最好了 //虽然有提示什么32位的闪退什么的 //实际情况就是能正常使用,没什么问题 //第一步打开数据连接 app.startActivity({ action: "android.settings.DATA_ROAMING_SETTINGS" }) sleep(2000) if(desc("关闭").exists()){ click(383,742) }launchApp("微信") sleep(1500) //以下三种情况都是为了返回微信首 //页,便于运行 //如果在上次求助窗口内则返回 if(text("我的收藏").exists()){ back() sleep(1500)} //1.根据左下角文字语音切换图标控件id判断 //如果打开了某人的对话页面则返回首页 if(id("com.tencent.mm:id/b7l"). exists()){ back() //等待1秒钟,等页面加载完成(下同) sleep(1500) } //2.根据左上角放大镜图标控件id判断如果 //在搜索页面则返回首页 if(id("com.tencent.mm:id/j64"). exists()){ back() sleep(1500) } //3.判断如果处于“通讯录"、"发现"、"我”页 //面时返回首页 //if(!id("com.tencent.mm:id/fd"). exists()){ if(text("服务").exists()){ //o=text("微信").findOne(0).bounds() //click(o.centerX(),o.centerY()) click(120,1220) } if(text("朋友圈").exists()){ //o=text("微信").findOne(0).bounds() //click(o.centerX(),o.centerY()) click(120,1220) }if(text("新的朋友").exists()){ //o=text("微信").findOne(0).bounds() //click(o.centerX(),o.centerY()) click(120,1220) } //点击微信右上角加号 id("com.tencent.mm:id/grz").findOne().click() sleep(1500) //再点击扫一扫打开它 s=text("扫一扫").findOne().bounds() click(s.centerX(),s.centerY())

登录你的微信平台,点击“公众号设置”。

点击“功能设置”,然后点击“设置”。

设置JS接口安全域名。这里填写的是一级域名,不带www和http。最多可以设置三个域名。设置完后点击确定。(多说一句,相比以前的分享没有任何域名限制,这里设置安全域名,目的是为了当发现此公众平台发现诱导分享行为时,可以根据此域名追溯到所有分享出去的链接,以及通过这些链接增加的粉丝。这样,微信就可以牢牢控制了你的微信平台,一旦发现违规,让分享链接失效,删除掉诱导行为增加的粉丝,是瞬间就可以完成的。因此,微信平台的开发者,一定要合理来使用分享功能,不要因小失大。等到你的微信平台被封,估计哭都来不及)

在开发者中心中获取你的AppID和AppSecret,接下来在获取令牌时,需要这两个信息。

获取令牌。在服务器端完成,代码如下:

function wx_get_token() {

$token = S('access_token')

if (!$token) {

$res = file_get_contents('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.'你的AppID'.'&secret='.'你的AppSecret')

$res = json_decode($res, true)

$token = $res['access_token']

// 注意:这里需要将获取到的token缓存起来(或写到数据库中)

// 不能频繁的访问https://api.weixin.qq.com/cgi-bin/token,每日有次数限制

// 通过此接口返回的token的有效期目前为2小时。令牌失效后,JS-SDK也就不能用了。

// 因此,这里将token值缓存1小时,比2小时小。缓存失效后,再从接口获取新的token,这样

// 就可以避免token失效。

// S()是ThinkPhp的缓存函数,如果使用的是不ThinkPhp框架,可以使用你的缓存函数,或使用数据库来保存。

S('access_token', $token, 3600)

}

return $token

}

注意:返回的access_token长度至少要留够512字节。接口返回值:

{"access_token":"ACCESS_TOKEN","expires_in":7200}

{"access_token":"vdlThyTfyB0N5eMoi3n_aMFMKPuwkE0MgyGf_0h0fpzL8p_hsdUX8VGxz5oSXuq5dM69lxP9wBwN9Yzg-0kVHY33BykRC0YXZZZ-WdxEic4","expires_in":7200}

获取jsapi的ticket。jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。

function wx_get_jsapi_ticket(){

$ticket = ""

do{

$ticket = S('wx_ticket')

if (!empty($ticket)) {

break

}

$token = S('access_token')

if (empty($token)){

wx_get_token()

}

$token = S('access_token')

if (empty($token)) {

logErr("get access token error.")

break

}

$url2 = sprintf("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=%s&type=jsapi",

$token)

$res = file_get_contents($url2)

$res = json_decode($res, true)

$ticket = $res['ticket']

// 注意:这里需要将获取到的ticket缓存起来(或写到数据库中)

// ticket和token一样,不能频繁的访问接口来获取,在每次获取后,我们把它保存起来。

S('wx_ticket', $ticket, 3600)

}while(0)

return $ticket

}

接口返回值:

{"errcode":0,"errmsg":"ok","ticket":"sM4AOVdWfPE4DxkXGEs8VMKv7FMCPm-I98-klC6SO3Q3AwzxqljYWtzTCxIH9hDOXZCo9cgfHI6kwbe_YWtOQg","expires_in":7200}

签名,将jsapi_ticket、noncestr、timestamp、分享的url按字母顺序连接起来,进行sha1签名。

noncestr是你设置的任意字符串。

timestamp为时间戳。

$timestamp = time()

$wxnonceStr = "任意字符串"

$wxticket = wx_get_jsapi_ticket()

$wxOri = sprintf("jsapi_ticket=%s&noncestr=%s&timestamp=%s&url=%s",

$wxticket, $wxnonceStr, $timestamp,

'要分享的url(从http开始,如果有参数,包含参数)'

)

$wxSha1 = sha1($wxOri)

最近闲下来,刚好朋友叫我研究一下auto.js,然后就抽空看了下Api,写了一个基于Auto.js的微信自动回复消息的脚本。

实现思路如下。

1.打开微信,点击"微信"按钮选中列表界面

2.截图,然后找到截图中红色的小点

3.点击小红点那个item进入聊天

4.自动回复消息

5.返回到微信聊天列表界面