aa24615 / work-wechat

模拟企业微信后台
MIT License
1 stars 2 forks source link

你好,想请教下,如何获取qrcode_key #1

Open maoz1987 opened 2 years ago

maoz1987 commented 2 years ago

使用什么接口可以获取到qrcode_key来构建这个登录url呢?

aa24615 commented 2 years ago

$work->login->getQrcode();

/* return Array ( [qrcode_key] => eb67102ca70843de //二维码的key [qrcode_url] => https://work.weixin.qq.com/wwqrlogin/qrcode/eb67102ca70843de?login_type=login_admin ) /

最近企微更新了,还没来得及修复,他那个cookie 需要获取两次

maoz1987 commented 2 years ago

不好意思,我是位产品经理,并不太看的懂后端php代码。 我clone了这个项目后,看到在login/Client.php中有这么一段:

private function getKey() { $params = [ 'r' => Params::random(), 'login_type' => 'login_admin', 'callback' => 'wwqrloginCallback', 'redirect_uri' => 'https://work.weixin.qq.com/wework_admin/loginpage_wx?pagekey=1614996011736462&from=myhome', 'crossorigin' => 1 ];

    return $this->httpGet('wework_admin/wwqrlogin/get_key', $params);
}

/**
 * 获取登录二维码key.
 *
 * @return array
 *
 * @author 读心印 <aa24615@qq.com>
 *
 */
public function getQrcode()
{
    $res = $this->getKey();
    $key = $res['data']['qrcode_key'];

    return [
        'qrcode_key' => $key,
        'qrcode_url' => $this->baseUri."wwqrlogin/qrcode/{$key}?login_type=login_admin"
    ];
}

此处使用 getQrcode()方法返回二维码链接时,需要用到的qrcode_key是通过上方的getKey()方法,调用企业微信: https://work.weixin.qq.com/wework_admin/wwqrlogin/get_key 的api来获取的,因为网上找不到企业微信这个api的说明文档,只搜到这个项目里有讲到。


$params = [ 'r' => Params::random(), 'login_type' => 'login_admin', 'callback' => 'wwqrloginCallback', 'redirect_uri' => 'https://work.weixin.qq.com/wework_admin/loginpage_wx?pagekey=1614996011736462&from=myhome', 'crossorigin' => 1 ];

想请教一下: 1.这里调用企业微信接口的各项入参是什么意思,还有这套机制是什么样的。 2.这个项目最终是可以从cookie中把企业微信的wwrtx.sid取出来是吧。

aa24615 commented 2 years ago

这不是官方的接口,你把你想实现的给开发就好了,开发会想办法