如何在OK.RU API中生成正确的签名(SIG)。 我们处理错误104

不久前,我遇到了困难。 当我在OK.RU(同学)中请求API时,我没有成功创建正确的SIG(错误104)。 事实证明,我并不是唯一一个,网络上提供的食谱效果不佳(我使用随机方法检查了很多)。 实际上他们工作了,但我只是不了解如何正确构建正确的查询,因此SIG也是正确的。

具体来说,本文专门针对104 OK.RU API错误。

PARAM_SIGNATURE 104   

以下是获取相册列表的简单代码。 该代码有点cr脚(我为自己编写了正确的类,但是它是特定的,对任何人都没有用),但是它描述了本质,许多新手程序员都可以根据示例创建自己的类。

 protected $params = array( 'application_id' => '5*******6', 'application_key' => 'C***********A', 'session_secret_key' => '*************0' ); protected $apiUrl = 'https://api.ok.ru/fb.do?'; public function getalbums( Request $request ) { //access_token        . $userok = Userok::where('useroks.user_id', '=', $request->user_id)->first(); $paramsArray = array( 'application_key' => $this->params['application_key'], 'format' => 'json', 'method' => 'photos.getAlbums', ); ksort($paramsArray); foreach($paramsArray as $k=>$v) { $paramsStr .= $k . "=" . $v; } /***    .   ,     (    ). $sig = strtolower( md5( $paramsStr) . md5( $userok->access_token .$this->params['session_secret_key'] ) ); **/ $sectret_key = md5($userok->access_token.$this->params['session_secret_key']); $sig = md5($paramsStr.$sectret_key); $paramsArray['sig'] = $sig; $paramsArray['access_token'] = $userok->access_token; return $this->sendRequest( $this->apiUrl, $paramsArray, 'POST' ); } protected function sendRequest($url = '', $params = array(), $method = 'POST') { if(is_array($params)) { $params = http_build_query($params); } $ch = curl_init(); if($method == 'GET') { $url .= $params; } else if($method == 'POST') { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); } curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); $result = curl_exec($ch); curl_close($ch); return json_decode($result, true); } 

但是要使其正常工作,您需要正确的$ paramsArray,否则将解决第104个错误,但会得到另一个错误。 许多新手程序员可能会忽略OK.RU为帮助开发人员所做的努力。

因此,请点击链接https://apiok.ru/dev/methods/

我们发现这种形式:



我们填写必要的数据并从本质上获得现成的说明,此外,我们还测试了我们的请求。

希望本文对您有所帮助。

Source: https://habr.com/ru/post/zh-CN468315/


All Articles