autodesk/core

1.0.3 2018-04-24 11:52 UTC

This package is not auto-updated.

Last update: 2024-09-15 03:03:15 UTC


README

需求

PHP 5.4.0 及以上版本

安装与使用

Composer

要通过 Composer 安装绑定,请运行

composer require autodesk/core

手动安装

下载文件并包含 autoload.php

require_once('/path/to/AutodeskCore/autoload.php');

测试

要运行单元测试

composer install
./vendor/bin/phpunit

入门

请按照 安装过程 进行操作,然后运行以下命令

双腿

<?php

require_once __DIR__ . '/vendor/autoload.php';

Autodesk\Auth\Configuration::getDefaultConfiguration()
    ->setClientId('XXXXXX')
    ->setClientSecret('XXXXXX');

$twoLeggedAuth = new Autodesk\Auth\OAuth2\TwoLeggedAuth();
$twoLeggedAuth->setScopes(['bucket:read']);

/**
 * Other options to manage the scopes
 *
 * $twoLeggedAuth->addScope('data:read');
 * $twoLeggedAuth->addScopes([]);
 * $twoLeggedAuth->setScopes($scopes);
 */

if (isset($cache['applicationToken']) && $cache['expiry'] > time()) {
    $twoLeggedAuth->setAccessToken($cache['applicationToken']);
} else {
    $twoLeggedAuth->fetchToken();

    $cache['applicationToken'] = $twoLeggedAuth->getAccessToken();
    $cache['expiry'] = time() + $twoLeggedAuth->getExpiresIn();
}

三腿

index.php

<?php

require_once __DIR__ . '/vendor/autoload.php';

session_start();

Autodesk\Auth\Configuration::getDefaultConfiguration()
    ->setClientId('XXXXXX')
    ->setClientSecret('XXXXXX')
    ->setRedirectUrl("http://{$_SERVER['HTTP_HOST']}/callback.php");

$threeLeggedAuth = new Autodesk\Auth\OAuth2\ThreeLeggedAuth();
$threeLeggedAuth->addScope('code:all');

if (isset($_SESSION['isAuthenticated']) && $_SESSION['expiry'] > time()) {
    $threeLeggedAuth->setAccessToken($_SESSION['accessToken']);

    print_r('Token was fetched from the session');
} else {
    if (isset($_SESSION['refreshToken'])) {
        $threeLeggedAuth->refreshToken($_SESSION['refreshToken']);

        $_SESSION['isAuthenticated'] = true;
        $_SESSION['accessToken'] = $threeLeggedAuth->getAccessToken();
        $_SESSION['refreshToken'] = $threeLeggedAuth->getRefreshToken();
        $_SESSION['expiry'] = time() + $threeLeggedAuth->getExpiresIn();

        print_r('Token was refreshed');
    } else {
        $redirectTo = $threeLeggedAuth->createAuthUrl();

        header('Location: ' . filter_var($redirectTo, FILTER_SANITIZE_URL));
        return;
    }
}

callback.php

<?php

require_once __DIR__ . '/vendor/autoload.php';

session_start();

Autodesk\Auth\Configuration::getDefaultConfiguration()
    ->setClientId('XXXXXX')
    ->setClientSecret('XXXXXX')
    ->setRedirectUrl("http://{$_SERVER['HTTP_HOST']}/callback.php");

$threeLeggedAuth = new Autodesk\Auth\OAuth2\ThreeLeggedAuth();
$threeLeggedAuth->addScopes(['data:read']);

if (isset($_GET['code']) && $_GET['code']) {
    $threeLeggedAuth->fetchToken($_GET['code']);

    $_SESSION['isAuthenticated'] = true;
    $_SESSION['accessToken'] = $threeLeggedAuth->getAccessToken();
    $_SESSION['refreshToken'] = $threeLeggedAuth->getRefreshToken();
    $_SESSION['expiry'] = time() + $threeLeggedAuth->getExpiresIn();

    $url = 'http://' . $_SERVER['HTTP_HOST'] . '/';
    header('Location: ' . filter_var($url, FILTER_SANITIZE_URL));
} else {
    header('Location: ' . $threeLeggedAuth->createAuthUrl());
}

授权文档

  • data:read: 应用程序将能够读取Autodesk生态系统中终端用户的数据。
  • data:write: 应用程序将能够在Autodesk生态系统中代表终端用户创建、更新和删除数据。
  • data:create: 应用程序将能够在Autodesk生态系统中代表终端用户创建数据。
  • data:search: 应用程序将能够在Autodesk生态系统中搜索终端用户的数据。
  • bucket:create: 应用程序将能够创建一个它将拥有的OSS存储桶。
  • bucket:read: 应用程序将能够读取它有权访问的OSS存储桶的元数据和内容列表。
  • bucket:update: 应用程序将能够设置它有权修改的OSS存储桶的权限和权益。
  • bucket:delete: 应用程序将能够删除它有权删除的存储桶。
  • code:all: 应用程序将能够代表终端用户编写和执行代码(例如,由设计自动化API处理的脚本)。
  • account:read: 对于产品API,应用程序将能够读取终端用户有权访问的账户数据。
  • account:write: 对于产品API,应用程序将能够更新终端用户有权访问的账户数据。
  • user-profile:read: 应用程序将能够读取终端用户的个人资料数据。

作者

forge.help@autodesk.com