基于易班开放平台接入研究与探索

本文为旧博客迁移的文章

平台介绍

易班是提供教育教学、生活服务、文化娱乐的综合性互动社区。已经成为全国教育系统的知名文化品牌。

易班开放平台是指由易班网所享有并运营的软件和提供的服务, 开发者可通过这些软件和服务开发易班插件及应用组件。您可以登录平台注册成为开发者,使用易班开放平台提供的接口, 创建有趣的应用或者让您的网站具有更强的社交特性和更多的用户。

易班开放平台目前开放了轻应用、网站接入和移动APP等类型的接入。易班开放平台可以为您提供易班的账户体系、关系体系、分享体系等相关接口, 更多内容查看易班API。 您可以通过简单的代码整合,在您的网站上放置易班登录按钮,您的网站用户就能够使用易班账号进行登录。 您也可以将应用接入易班轻应用,用户可以在易班客户端、应用广场直接访问您的应用。易班开放平台可以帮助您提升网站的用户注册量和提升网站访问数据。

准备工作

本次教程后端以PHP为例,对易班开放平台的功能与新系统进行整合。利用php 7.1.8作为服务器后端开发环境,对服务器与易班开放平台进行对接。利用易班开放平台提供的php SDK(MD5:0A5FB0860C7FA3A5D7E7F7E8EE0C2EDF)与封装单例模式运行在swoole中,大大优化了IO性能。

upload successful

授权机制

易班api的访问大多都需要验证用户身份,而oauth2.0是目前最主要的用户身份验证和授权方式。关于易班授权流程如图所示。 开发者可以先浏览 易班授权接口 的文档,熟悉易班授权接口和参数含义,然后以 应用场景 分别说明如何使用易班授权。

upload successful

接入流程

接入易班开发平台需要进行以下两项前置工作。

  • 进入易班开放平台,申请成为开发者并等待审核
  • 审核通过后,创建web应用并获取APPID和APPSECRET,设置首页地址与回调地址

注意,回调地址必须运行在公网中,且外部服务器可访问的地址。

本次程序使用EasySwoole框架,所以在\Conf\Config命名空间内添加userConf()

该项配置是使易班单例程序可以获得全局配置。

1
2
3
4
5
6
7
8
9
10
<?php
private function userConf(){
return array(
"yiban" => [
'AppID' => '此处填写你的appid',
'AppSecret' => '此处填写你的AppSecret',
'CallBack' => '此处填写你的授权回调地址',
]
);
}

将易班SDK解压并复制到\App\Library\SDK\yiban,在\App\Library文件夹中创建Yiban.php,并写入以下文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
namespace App\Library;
include ROOT . '/App/Library/SDK/yiban/yb-globals.inc.php';

use Conf\Config;

class Yiban extends \YBOpenApi
{
public $sdk;

static function getInstance(){
return new self();
}

// 构造函数
function __construct( $token=false )
{
$conf = Config::getInstance()->getConf("yiban");
$this->init($conf['AppID'], $conf['AppSecret'], $conf['CallBack']);
if( $token ){
$this->bind( $token );
}
}

// 通过code获得acess_token,没有传入code进行登陆操作
function getAccessToken(){
return $this->getAuthorize()->getToken();
}

// 获得个人信息,对应user/me接口
function userMe(){
return $this->request('user/me');
}

// 获得校方认证信息,对应user/verify_me接口
function verifyMe(){
return $this->request('user/verify_me');
}
}

对于文件内不存在或者为开放的接口,可以自行添加,或者使用new Yiban()->request('API');引入。

退出操作

在使用oauth/authorize接口时,已登陆用户会直接授权,需要访问https://o.yiban.cn/ajax/logout退出登陆开放平台平台。
在退出按钮采取增加iframe的方式进行退出开放平台登陆。具体代码如下:

1
2
3
let iframe = document.createElement('iframe'); 
iframe.src="https://o.yiban.cn/ajax/logout";
document.body.appendChild(iframe);