snlbaral / coinbase-api-php
PHP版本的Coinbase API。
1.0.1
2021-02-14 09:59 UTC
Requires
- guzzlehttp/guzzle: ^7.2
This package is auto-updated.
Last update: 2024-09-14 18:42:22 UTC
README
这是一个开源库,允许PHP应用程序以编程方式与COINBASE CONNECT (OAUTH2)交互。
要求
使用此库的PHP需要以下内容
- [Composer][composer] 或手动安装
composer.json
中提到的依赖项。
安装
在PHP中安装它的推荐方法是使用[Composer][composer]安装。
composer require snlbaral/coinbase-api-php
快速开始
创建OAuth2应用程序。创建后,您的应用程序将分配一个客户端ID,客户端密钥。一旦您有了重定向URI,客户端ID和客户端密钥,您的Web应用程序就可以按照以下步骤开始使用此库。**警告:客户端密钥类似于密码或私钥,允许应用程序识别为您的应用程序:因此,客户端密钥应保持私密**。
步骤1:创建您的配置
config.php
<?php return [ /** * Your coinbase client ID. */ 'COINBASE_CLIENT_ID' => '<COINBASE_CLIENT_ID>', /** * Your coinbase client secret. */ 'COINBASE_CLIENT_SECRET' => '<COINBASE_CLIENT_SECRET>', /** * Your coinbase account id/address. */ 'COINBASE_ACCOUNT_ID' => '<COINBASE_ACCOUNT_ID>', ];
步骤2:创建coinbase_token.php
并将此URI添加到应用程序的重定向URI中。
<?php session_start(); require 'vendor/autoload.php'; ($config = @include 'config.php') or die('Configuration file not found'); $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; $client = new GuzzleHttp\Client(); if(isset($_GET['code'])) { $code = $_GET['code']; $response = $client->Request( 'POST', 'https://api.coinbase.com/oauth/token', [ 'form_params' => [ 'grant_type' => 'authorization_code', 'code' => $code, 'client_id' => $config['COINBASE_CLIENT_ID'], 'client_secret' => $config['COINBASE_CLIENT_SECRET'], 'redirect_uri' => $redirect, ], ] ); $data = json_decode($response->getBody()->getContents(),TRUE); $access_token = $data['access_token']; $refresh_token = $data['refresh_token']; file_put_contents('refreshToken.txt', $refresh_token); $_SESSION['coinbase_token'] = $access_token; header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL)); return; } if(isset($_REQUEST['logout'])) { unset($_SESSION['coinbase_token']); } if(!isset($_SESSION['coinbase_token'])) { echo '<a href="https://www.coinbase.com/oauth/authorize?client_id='.$config['COINBASE_CLIENT_ID'].'&redirect_uri='.$redirect.'&response_type=code&scope=wallet%3Aaddresses%3Acreate,wallet%3Aaddresses%3Aread,wallet%3Anotifications%3Aread" target="_blank">Authorize Me</a>'; } else { echo '<h2>Save this access token for later use.</h2>'; echo 'Access Token: '.$_SESSION['coinbase_token']; echo '<br/><a href="?logout">Logout</a>'; }
步骤3:获取OAuth访问令牌
创建coinbase_token.php
文件并将此URI添加到应用程序的重定向URI后。打开coinbase_token.php
并授权应用程序。它将返回一个访问令牌,将此令牌保存起来以在应用程序中使用。
用法
初始化
require 'vendor/autoload.php'; use Snlbaral\Coinbase\Coinbase; $client = new Coinbase(); $accessToken = "<Access Token from Step 3>";
获取地址
$address = $client->getAddress($accessToken);
列出交易
$transactions = $client->listTransactions($accessToken);
警告:访问令牌仅在2小时内有效。2小时后,将返回401错误。您需要获取新的访问令牌才能通过OAuth2继续使用此服务
$refreshToken = file_get_contents('refreshToken.txt'); $accessToken = $client->getAccessToken($refreshToken); //returns new access token valid for next 2 hours.
Example.php
try { $address = $client->getAddress($accessToken); print_r($address); //$address = json_decode($address,true); //echo $address['data']['address']; } catch (Exception $e) { if($e->getCode()==401) { $refreshToken = file_get_contents('refreshToken.txt'); $accessToken = $client->getAccessToken($refreshToken); //Save/Update the this new access token to use it for next 2 hours //Get Address using new access token $address = $client->getAddress($accessToken); print_r($address); } else { print_r($e->getMessage()); } }
许可协议
此PHP库受3-Clause BSD许可协议许可。
致谢
此PHP库由Sunil Baral开发和维护。