dev-master
9999999-devFangcloud SDK for PHP
MIT
The Requires
The Development Requires
by Fangcloud Open Platform
2.0.0
2.0.0.0Fangcloud SDK for PHP
MIT
The Requires
The Development Requires
by Fangcloud Open Platform
Fangcloud SDK for PHP
# 安装composer curl -sS https://getcomposer.org/installer | php
你可以通过composer.phar安装亿方云php sdk, (*1)
php composer.phar require fangcloud/fangcloud-sdk-php:@stable
你也可以在已有的composer.json文件中加入亿方云php sdk的依赖, (*2)
{ "require": { "fangcloud/fangcloud-sdk-php": "@stable" } }
安装完成后,require composer的autoload文件以使用亿方云php sdk, (*3)
require 'vendor/autoload.php';
前往release页面下载对应版本fangcloud-php-sdk.phar文件, (*4)
使用时直接require该文件, (*5)
require 'fangcloud-php-sdk.phar';
前往release页面下载对应版本fangcloud-php-sdk.zip压缩文件, (*6)
解压后require fangcloud-autoload.php, (*7)
require 'fangcloud-autoload.php';
目前企业管理员可在企业控制台中申请开放平台应用,经平台审核通过以后会得到一组client_id和client_secret。, (*8)
在使用本sdk使,用户需要使用这些信息初始化应用, (*9)
YfyAppInfo::init($clientId, $clientSecret, $callbackUri);
其中$callbackUri
是用户申请应用时必须填写的回调地址。, (*10)
// 初始化应用信息 YfyAppInfo::init($clientId, $clientSecret, $callbackUri); // 可配置参数 $options = [ YfyClientOptions::ACCESS_TOKEN => $accessToken, YfyClientOptions::REFRESH_TOKEN => $refreshToken ]; // 构造client $client = new YfyClient($options); // 调用api $client->users()->getSelf();
其中$options为用户可配置的参数,可以参考Fangcloud\YfyClientOptions中的注释, (*11)
本sdk也包括了授权部分的操作(即如何获取access token), (*12)
本sdk提供了两个方法帮助用户简化授权码流程的交互, (*13)
# 获取授权url, 让用户跳转到这个url上以完成授权 $authorizationUrl = $client->oauth()->getAuthorizationUrl();
# 在回调页面调用这个函数, sdk会帮助你校验state, 并且构造请求获取access token $res = $client->oauth()->finishAuthorizationCodeFlow($code, $state); $accessToken = $res['access_token']; $refreshToken = $res['refresh_token'];
本sdk提供了一个web-demo帮助用户更好理解授权码模式的流程, (*14)
下载本sdk源码, (*15)
git clone git@github.com:yifangyun/fangcloud-php-sdk.git
进入example/web-demo目录,修改YfyClientFactory.php文件,填入你注册的应用信息。, (*16)
起一个php built-in server, (*17)
php -S localhost:8000
打开http://localhost:8000以使用该demo,根据提示操作即可, (*18)
需要注意,在授权码模式中,由于需要校验state参数,需要对用户生成的state参数进行存储,该操作由Fangcloud\PersistentData\PersistentDataHandler调用,PersistentDataHandler的默认实现会将state参数存入php的$_SESSION
中,因此需要用户开启session,假如用户有自己的需求,则需要实现自己的PersistenDataHandler(推荐做法)。, (*19)
$res = $client->oauth()->getTokenByPasswordFlow($username, $password); $accessToken = $res['access_token']; $refreshToken = $res['refresh_token'];
主要用于实现state参数的存储以及读取,默认实现会将其存入php的$_SESSION
中,因此需要用户开启session,假如用户有自己的需求,则需要实现自己的PersistenDataHandler(推荐做法)。, (*20)
用于生成state参数,提供了random_bytes、mcrypt、openssl、urandom四种实现,若用户没有显示指定实现,默认会检测支持哪一种实现,优先级random_bytes>mcrypt>openssl>urandom,用户可以通过Fangcloud\RandomString\RandomStringGeneratorFactory创建指定实现的实例,并且通过option的方式传入YfyClient的构造函数。, (*21)
$options = [ YfyClientOptions::RANDOM_STRING_GENERATOR => RandomStringGeneratorFactory::create('random_bytes') ]; $client = new YfyClient(options);
当然,用户也可以选择自己实现RandomStringGenerator。, (*22)
Fangcloud SDK for PHP
MIT
Fangcloud SDK for PHP
MIT