码迷,mamicode.com
首页 > Windows程序 > 详细

oschina openapi php 调用

时间:2015-01-29 17:54:01      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:

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

  1. 生成oschina授权链接

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

  3. 利用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()
 {
 }
}
<?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);
 }
}

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

oschina openapi php 调用

标签:

原文地址:http://my.oschina.net/xialeistudio/blog/373263

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!