Skip to content

Latest commit

 

History

History
67 lines (54 loc) · 2.13 KB

8.0-GENERATE-OAUTH2-URL.md

File metadata and controls

67 lines (54 loc) · 2.13 KB

生成应用OATU2登录URL

企业微信: 网页授权登录第三方文档

1. 生成应用OATU2登录URL

<?php
use Zwei\WorkWechat\Suites\SuiteApi;
$suiteApi  = new SuiteApi();

$oauth2LoginUrlParam = new Oauth2LoginUrlParams();
$oauth2LoginUrlParam->scope = 'snsapi_base';// 设置授权
$oauth2LoginUrlParam->state = '';
$suiteId = '';
// 生成oauth2登录url
$oauth2LoginUrl = $suiteApi->generateOauth2LoginUrl($suiteId, $url,  $oauth2LoginUrlParam);

2. oauth2登录成功 会进入回调URI

企业员工点击后,页面将跳转至 redirect_uri?code=CODE&state=STATE,第三方应用可根据code参数获得企业员工的corpid与userid。code长度最大为512字节。

<?php
use Zwei\WorkWechat\Suites\SuiteApi;

$suiteApi = new SuiteApi();

if (isset($_GET['code'])) {
    $code = $_GET['code'];
    
    // 获取第三方应用凭证
    $result = $suiteApi->getSuiteAccessToken($suiteId, $suiteSecret, $suiteTicket);
    $suiteAccessToken = $result['suite_access_token'];
    // 根据 回调 code 获取当前登录用户信息
    $auth2UserInfo = $suiteApi->getUserInfo($suiteAccessToken, $code);
    
    // 若用户不属于任何企业
    if(!isset($auth2UserInfo['CorpId'])) {
        echo '<pre>';
        echo 'no CorpId';
        print_r($auth2UserInfo);
        exit;
    }
    
    // 换取企业access_token start
    // $corpId = $auth2UserInfo['CorpId'];
    // 获取永久授权码 授权成功后,通过临时授权码换取的永久授权码
    // $permanentCode = '';
    // 获取企业access_token
    // $result = $suite->getCorpToken($suiteAccessToken, $corpId, $permanentCode);
    // $corpAccessToken = $result['access_token'];
    // 换取企业access_token end
    
    // 没有用户 user_ticket
    if(!isset($auth2UserInfo['user_ticket'])) {
        echo '<pre>';
        echo 'no user_ticket';
        print_r($auth2UserInfo);
        exit;
    }
    // 获取登录用户详情
    $userTicket = $auth2UserInfo['user_ticket'];
    $userDetail = $suiteApi->getUserDetail($suiteAccessToken, $userTicket);
            
}