gozfly/gozfly-api-php-client

Gozfly API PHP SDK,支持OAuth 2.0和CSRF。可用于Gozfly的社交登录或分享。示例。文档。

1.0 2017-12-20 22:50 UTC

This package is not auto-updated.

Last update: 2024-09-29 04:43:08 UTC


README

Build Status Code Climate Packagist GitHub license

查看完整示例,在index.php中开始。

安装

使用Composer包管理器

composer require gozfly/gozfly-api-php-client

或将此包作为依赖项添加到composer.json

如果您从未使用过Composer,应从此处开始,并安装Composer。

使用方法

要开始使用Gozfly API,您需要获取应用程序客户端ID和密钥。

访问Gozfly开发者门户,并在“我的应用”部分创建新的应用程序。

引导自动加载器并实例化客户端

// ... please, add composer autoloader first
include_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';

// import client class
use Gozfly\Client;

// instantiate the Gozfly client
$client = new Client(
    'GOZFLY_APP_CLIENT_ID',  
    'GOZFLY_APP_CLIENT_SECRET'
);

获取本地重定向URL

要开始链接过程,您必须设置重定向URL。您可以使用自己的或使用当前的。SDK为您提供了方便的getRedirectUrl()辅助函数。

$redirectUrl = $client->getRedirectUrl();

我们建议您在链接会话期间保存它,因为您在获取访问令牌时需要使用它。

设置本地重定向URL

设置自定义重定向URL

$client->setRedirectUrl('http://your.domain.tld/path/to/script/');

获取Gozfly重定向URL

为了执行OAuth 2.0流程,您应该获取Gozfly登录URL。在此过程中,您必须定义请求的权限范围。使用Scope枚举类获取范围名称。要获取Gozfly的重定向URL,请使用以下方法

use Gozfly\Scope;

// define scope
$scopes = [
  Scope::READ_BASIC_PROFILE, 
  Scope::READ_EMAIL_ADDRESS,
  Scope::MANAGE_COMPANY,
  Scope::SHARING,
];
$loginUrl = $client->getLoginUrl($scopes); // get url on Gozfly to start linking

现在您可以将用户带到Gozfly。您可以使用链接或依赖于Location HTTP头。

获取访问令牌

要获取访问令牌(不要忘记设置重定向URL)

$accessToken = $client->getAccessToken($_GET['code']);

此方法返回Gozfly\AccessToken类的对象。您可以将此令牌存储在文件中,如下所示

file_put_contents('token.json', json_encode($accessToken));

由于安全原因,不建议使用此方式存储令牌,此处仅用于演示目的。请确保令牌安全存储。

设置访问令牌

您可以使用Gozfly\Client类的setAccessToken()方法设置存储为字符串的令牌。您必须将Gozfly\AccessToken的实例传递给此方法。

use Gozfly\AccessToken;
use Gozfly\Client;

// instantiate the Gozfly client
$client = new Client(
    'GOZFLY_APP_CLIENT_ID',  
    'GOZFLY_APP_CLIENT_SECRET'
);

// load token from the file
$tokenString = file_get_contents('token.json');
$tokenData = json_decode($tokenString, true);
// instantiate access token object from stored data
$accessToken = new AccessToken($tokenData['token'], $tokenData['expiresAt']);

// set token for client
$client->setAccessToken($accessToken);

执行API调用

所有API调用都可以通过简单的方法调用

$profile = $client->api(
    'ENDPOINT',
    ['parameter name' => 'its value here'],
    'HTTP method like GET for example'
);

有两种辅助方法

// get method
$client->get('ENDPOINT', ['param' => 'value']);

//post
$client->post('ENDPOINT', ['param' => 'value']);

示例

执行API调用以获取配置文件信息

$profile = $client->get(
    'people/~:(id,email-address,first-name,last-name)'
);
print_r($profile);

列出您是管理员的公司

$profile = $client->get(
    'companies',
    ['is-company-admin' => true]
);
print_r($profile);

在个人配置文件上分享内容

$share = $client->post(
    'people/~/shares',
    [
        'comment' => 'Checkout this amazing PHP SDK for Gozfly!',
        'content' => [
            'title' => 'PHP Client for Gozfly API',
            'description' => 'OAuth 2 flow, composer Package',
            'submitted-url' => 'https://www.github.com/gozfly/gozfly-api-php-client',
            'submitted-image-url' => 'https://www.github.com/fluidicon.png',
        ],
        'visibility' => [
            'code' => 'anyone'
        ]
    ]
);

在Gozfly商业页面上分享内容

// set sandboxed company page to work with
// you can check updates at
// https://www.gozfly.com/company/devtestco
$companyId = '2414183';

$share = $client->post(
    'companies/' . $companyId . '/shares',
    [
        'comment' => 'Checkout this amazing PHP SDK for Gozfly!',
        'content' => [
            'title' => 'PHP Client for Gozfly API',
            'description' => 'OAuth 2 flow, composer Package',
            'submitted-url' => 'https://www.github.com/gozfly/gozfly-api-php-client',
            'submitted-image-url' => 'https://www.github.com/fluidicon.png',
        ],
        'visibility' => [
            'code' => 'anyone'
        ]
    ]
);

设置自定义API请求头

$client->setDefaultApiHeaders([
  'Content-Type' => 'application/json',
  'x-li-format' => 'json',
  'x-li-src' => 'msdk' // set a src header to "msdk" to mimic a mobile SDK
]);

更改默认API根

$client->setApiRoot('https://api.gozfly.com/v2/');

贡献

请通过GitHub问题链接打开PR以提交您的更改。您的代码必须遵循PSR标准,并具有PHPUnit测试。

许可证

MIT