Home > Backend Development > PHP Tutorial > oschina openapi php 调用

oschina openapi php 调用

WBOY
Release: 2016-06-23 13:40:35
Original
895 people have browsed it

应用时基于yii的。目前流程如下:

生成oschina授权链接

用户访问该链接之后得到 code

利用code换取access_token

代码:

<?php/** * @author xialei <xialeistudio@gmail.com> */class OschinaOauth extends CComponent{ public $ak; public $sk; public $callback; private $host = 'https://www.oschina.net'; public function init() { } /**  * 获取授权链接  * @return string  */ public function getRedirectUrl() {  $params = array(    'response_type' => 'code',    'client_id' => $this->ak,    'redirect_uri' => Yii::app()->createAbsoluteUrl($this->callback)  );  return $this->host . '/action/oauth2/authorize?' . http_build_query($params); } /**  * 获取AccessToken  * @param $code  * @return string  * @throws CException  * @throws Exception  */ public function getAccessToken($code) {  $params = array(    'client_id' => $this->ak,    'client_secret' => $this->sk,    'grant_type' => 'authorization_code',    'code' => $code,    'dataType' => 'json'  );  $url = $this->host . '/action/openapi/token';  $resp = Request::post($url, $params);  $data = json_decode($resp,true);  return $data; } public function refreshAccessToken() { }}
Copy after login
<?php/** * @author xialei <xialeistudio@gmail.com> */class OauthController extends Controller{ public function actionCallback($code, $state) {  $data = Yii::app()->oauth->getAccessToken($code);  print_r($data); } public function actionRedirect() {  $url = Yii::app()->oauth->getRedirectUrl();  $this->redirect($url); }}
Copy after login

目前的问题是可以得到 code,但是利用code去oschina获取access_token的时候报错了。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template