PHPackages                             fangcloud/fangcloud-php-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. fangcloud/fangcloud-php-sdk

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

fangcloud/fangcloud-php-sdk
===========================

Fangcloud SDK for PHP

2.0.0(8y ago)138MITPHPPHP &gt;=5.5

Since Dec 19Pushed 8y ago2 watchersCompare

[ Source](https://github.com/yifangyun/fangcloud-php-sdk)[ Packagist](https://packagist.org/packages/fangcloud/fangcloud-php-sdk)[ RSS](/packages/fangcloud-fangcloud-php-sdk/feed)WikiDiscussions master Synced 6d ago

READMEChangelogDependencies (5)Versions (2)Used By (0)

亿方云PHP SDK
==========

[](#亿方云php-sdk)

安装
--

[](#安装)

### 通过composer安装(推荐)

[](#通过composer安装推荐)

```
# 安装composer
curl -sS https://getcomposer.org/installer | php
```

你可以通过composer.phar安装亿方云php sdk

```
php composer.phar require fangcloud/fangcloud-sdk-php:@stable
```

你也可以在已有的composer.json文件中加入亿方云php sdk的依赖

```
{
   "require": {
      "fangcloud/fangcloud-sdk-php": "@stable"
   }
}
```

安装完成后，require composer的autoload文件以使用亿方云php sdk

```
require 'vendor/autoload.php';
```

### 通过phar安装

[](#通过phar安装)

前往release页面下载对应版本fangcloud-php-sdk.phar文件

使用时直接require该文件

```
require 'fangcloud-php-sdk.phar';
```

### 通过autoload.php安装

[](#通过autoloadphp安装)

前往release页面下载对应版本fangcloud-php-sdk.zip压缩文件

解压后require fangcloud-autoload.php

```
require 'fangcloud-autoload.php';
```

创建应用
----

[](#创建应用)

目前企业管理员可在企业控制台中申请开放平台应用，经平台审核通过以后会得到一组client\_id和client\_secret。

在使用本sdk使，用户需要使用这些信息初始化应用

```
YfyAppInfo::init($clientId, $clientSecret, $callbackUri);
```

其中`$callbackUri`是用户申请应用时必须填写的回调地址。

快速上手
----

[](#快速上手)

### API调用

[](#api调用)

```
// 初始化应用信息
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中的注释

### 进行授权

[](#进行授权)

本sdk也包括了授权部分的操作（即如何获取access token）

#### 使用授权码模式

[](#使用授权码模式)

本sdk提供了两个方法帮助用户简化授权码流程的交互

```
# 获取授权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帮助用户更好理解授权码模式的流程

下载本sdk源码

```
git clone git@github.com:yifangyun/fangcloud-php-sdk.git

```

进入example/web-demo目录，修改YfyClientFactory.php文件，填入你注册的应用信息。

起一个php built-in server

```
php -S localhost:8000

```

打开以使用该demo，根据提示操作即可

需要注意，在授权码模式中，由于需要校验state参数，需要对用户生成的state参数进行存储，该操作由Fangcloud\\PersistentData\\PersistentDataHandler调用，PersistentDataHandler的默认实现会将state参数存入php的`$_SESSION`中，因此需要用户开启session，假如用户有自己的需求，则需要实现自己的PersistenDataHandler（推荐做法）。

#### 使用密码模式

[](#使用密码模式)

```
$res = $client->oauth()->getTokenByPasswordFlow($username, $password);
$accessToken = $res['access_token'];
$refreshToken = $res['refresh_token'];
```

### 可定制化组件

[](#可定制化组件)

#### PersistentDataHandler

[](#persistentdatahandler)

主要用于实现state参数的存储以及读取，默认实现会将其存入php的`$_SESSION`中，因此需要用户开启session，假如用户有自己的需求，则需要实现自己的PersistenDataHandler（推荐做法）。

#### RandomStringGenerator

[](#randomstringgenerator)

用于生成state参数，提供了random\_bytes、mcrypt、openssl、urandom四种实现，若用户没有显示指定实现，默认会检测支持哪一种实现，优先级random\_bytes&gt;mcrypt&gt;openssl&gt;urandom，用户可以通过Fangcloud\\RandomString\\RandomStringGeneratorFactory创建指定实现的实例，并且通过option的方式传入YfyClient的构造函数。

```
$options = [
  YfyClientOptions::RANDOM_STRING_GENERATOR => RandomStringGeneratorFactory::create('random_bytes')
];
$client = new YfyClient(options);
```

当然，用户也可以选择自己实现RandomStringGenerator。

其他文档
----

[](#其他文档)

- [phpdoc](https://yifangyun.github.io/fangcloud-php-sdk)
- [API文档](https://open.fangcloud.com/wiki/v2)

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3071d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4370f0adc1ba5148e44229f874893cc563fb4b43cb4aa03d72c0e8bc564a0d35?d=identicon)[yifangyun](/maintainers/yifangyun)

---

Top Contributors

[![Just-CJ](https://avatars.githubusercontent.com/u/9214223?v=4)](https://github.com/Just-CJ "Just-CJ (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/fangcloud-fangcloud-php-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/fangcloud-fangcloud-php-sdk/health.svg)](https://phpackages.com/packages/fangcloud-fangcloud-php-sdk)
```

###  Alternatives

[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

728272.9k20](/packages/civicrm-civicrm-core)[firefly-iii/data-importer

Firefly III Data Import Tool.

7545.8k](/packages/firefly-iii-data-importer)[ralphjsmit/laravel-helpers

A package containing handy helpers for your Laravel-application.

13704.6k2](/packages/ralphjsmit-laravel-helpers)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
