naviisml/laravel-intra-api

一个用于与42 Intra api交互的Laravel包

这个包的官方仓库似乎已经不存在了,因此该包已被冻结。

v1.x-dev 2022-03-08 23:30 UTC

This package is auto-updated.

Last update: 2023-01-09 01:48:03 UTC


README

依赖

  • PHP 8.1
  • Laravel 8.1

功能

  • 通过Intra进行身份验证
  • 通过Intra进行API调用

安装

步骤1. 安装包

composer require naviisml/laravel-intra-api

步骤2. 添加ServiceProvider

config/app.php

return [
	// ...

	'providers' => [
        /*
         * Package Service Providers...
         */
		Naviisml\IntraApi\IntraServiceProvider::class,
	]
];

步骤3. 添加服务

config/services.php

return [
	// ...

    'intra' => [
		'url' => env('42_URL'), // The main API url
        'client_id' => env('42_CLIENT_ID'), // The client_id
        'client_secret' => env('42_CLIENT_SECRET'), // The client_secret
    ],
];

使用

OAuth 2.0

步骤1. 身份验证URL

use Naviisml\IntraApi\Facades\IntraOAuth;

IntraOAuth::driver('intra')->buildAuthUrl()

步骤2. 回调

use Naviisml\IntraApi\Facades\IntraOAuth;

$response = IntraOAuth::driver('intra')->token(); // makes the token call
$user = $response->user(); // returns the OAuth user

API调用

use Naviisml\IntraApi\Facades\IntraAPI;

$headers = [
	'Authorization' => 'Bearer ' . $access_token,
];

$response = IntraAPI::driver('intra')->setEndpoint("/v2/me/teams")->with(['page' => '1'])->headers($headers)->get();

return $response->getBody();