博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oschina openapi php 调用
阅读量:6314 次
发布时间:2019-06-22

本文共 1460 字,大约阅读时间需要 4 分钟。

hot3.png

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

  1. 生成oschina授权链接

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

  3. 利用code换取access_token

代码:

 */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',  'redirect_uri' => Yii::app()->createAbsoluteUrl($this->callback),  '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() { }}
 */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的时候报错了。

转载于:https://my.oschina.net/xialeistudio/blog/373263

你可能感兴趣的文章
浅谈Excel开发:十 Excel 开发中与线程相关的若干问题
查看>>
nfd指令的详细说明
查看>>
安装VisualSvn Server时遇到的问题
查看>>
不用Visual Studio,5分钟轻松实现一张报表
查看>>
人脸识别 开放书籍 下载地址
查看>>
Notepad++配置Python开发环境
查看>>
用户组概念 和 挂载 概念
查看>>
如何快速获取ADO连接字符串
查看>>
AspNetPager控件的最基本用法
查看>>
sessionKey
查看>>
高性能Javascript--脚本的无阻塞加载策略
查看>>
Java 编程的动态性, 第4部分: 用 Javassist 进行类转换--转载
查看>>
完毕port(CompletionPort)具体解释 - 手把手教你玩转网络编程系列之三
查看>>
iOS8 Push Notifications
查看>>
各大名企笔试及面经大全(程序猿必读)
查看>>
Oracle 连接、会话数的查看,修改
查看>>
Python使用QRCode模块生成二维码
查看>>
英语学习的重要性
查看>>
原产地政策,jsonp跨域
查看>>
ffmpeg参数具体解释
查看>>