g1k/yii2-direct-api

此包已被弃用,不再维护。未建议替代包。
此包的最新版本(dev-master)没有提供许可证信息。

Yii2 Api Direct 库

维护者

详细信息

github.com/G1K/yii2-direct-api

源代码

安装: 232

依赖者: 0

建议者: 0

安全: 0

星级: 4

关注者: 1

分支: 14

类型:yii2-extension

dev-master 2016-01-16 21:29 UTC

This package is not auto-updated.

Last update: 2020-10-30 21:40:32 UTC


README

yii2-direct-api 为 Yii2 框架提供了对 Yandex.Direct API 的支持。是 YiiDirectApi 的分支。

使用方法

在使用此扩展之前,需要 注册一个应用,该应用将与 Yandex.Direct API 一起工作。注册后,应用将被分配一个应用程序 ID 和密码。

安装和配置扩展

建议通过 composer 安装此扩展。

$ php composer.phar require g1k/yii2-direct-api "dev-master"

或者

"g1k/yii2-direct-api": "dev-master"

在 composer.json 文件的 require 部分添加以下内容。

在应用程序配置中添加组件

'components'=>[
		...
		'direct' => [
				'class' 		=> 'g1k\direct\DirectApi',
				'clientId'		=> 'ид приложения',
				'clientSecret'	=> 'секретный ключ приложения',
				'useSandbox'	=> true, # использовать ли песочницу. по умолчанию false — использует боевое API
				'locale'		=> 'ru', # на каком языке отдавать ответы. Если не указан, то используется язык приложения
				'responseType' 	=> 'code', # Тип ответа от яндекса при получении токена (code, token). Если не указан, то используется code. 
		]
],

获取令牌

为了获取令牌,需要将用户引导到 Yandex.Direct 的页面。可以通过以下方式获取该页面的链接

$link = Yii::$app->direct->getAuthorizeUrl();

getAuthorizeUrl() 方法中,还可以传递 $state 参数,它将被以原始形式从 Yandex 返回。

用户点击生成的链接并允许访问后,Yandex 将返回在应用程序注册时指定的 URL,并带有代码(如果指定了 state 参数,则以原始形式返回)。

为了获取令牌,需要将 Yandex 返回的 code 参数传递给 getDirectToken($code) 方法。

$token = Yii::$app->direct->getDirectToken($code);

如果发生错误,该方法将返回 false,如果成功获取令牌,则返回包含令牌的字符串。下面将介绍错误处理。

通过此方法获取令牌后,扩展会记住它。如果应用将使用对特定 Yandex.Direct 账户的访问权限,那么最好将令牌保存在某种持久存储中。

API 请求

API 请求通过扩展方法进行,这些方法的名称与 Yandex.Direct API 方法的名称相对应,但以小写字母开头。例如,在 Yandex.Direct API 中有 GetBanners 方法;可以通过扩展方法 getBanners() 向其发送请求。每个方法都可以接受一个 $param 数组,其中包含执行方法所需的数据。对于某些方法,此数组是可选的。$param 的内容在每个 Yandex.Direct API 方法中都有描述。以下是一个使用 GetBanners 方法的 API 请求示例。

$res = Yii::$app->direct->getBanners(array(
    'CampaignIDS' => array(100, 101, 123),
    'GetPhrases' => 'WithPrices'
));

在成功的情况下,每个方法都会返回来自 Yandex 的响应,或者在发生错误时返回 false

错误处理

要获取错误信息,可以使用以下方法

  • getError() - 返回错误代码

  • getErrorStr() - 返回错误信息

在从本地存储获取数据时安装用户名和令牌

如果我们自己存储令牌和用户名,那么在开始工作之前,需要将它们传递给扩展,以便能够对API进行查询。为此,存在setLoginsetToken方法。

Yii::$app->direct->setLogin('login')->setToken('token');

支持的方法

目前扩展尚未提供对雅虎直接API所有方法的访问。但已实现大多数方法。尚未实现“广告标记”、“广告图片”、“重新定位”和“金融操作”组中的方法。

我将非常欢迎补充。谢谢。