OpenAPI系列: 六、OpenAPI策略分析

?

一、如何注冊

  • 為什么要注冊?

訪問 OpenAPI必須擁有Consumer Key和Consumer Secret。

  • 如何注冊?

要獲取Consumer Key及Consumer Secret,需要消費方(Consumer)向服務提供方申請注冊,服務提供方審核通過后會向消費方分配Consumer Key和Consumer Secret

  • 注冊時需提供什么信息?

消費方注冊時需要向服務提供方提供以下信息:

條目說明
消費方名稱第三方名稱
消費方電子郵箱API變化時方便通知
消費方OAuth請求URL地址

消費方進行OAuth驗證,獲取令牌及密鑰的請求URL地址(不包含參數部分)

如:http://youwebsite/request_token

消費方OAuth回調URL地址

消費方OAuth驗證通過后的回調URL地址(不包含參數部分)

如:http://youwebsite/request_token_ready

?

?

二、如何簽名

對 OpenAPI 進行REST請求時有如下幾種參數:

API方法api_method
不需簽名參數UnSignArguments
需簽名參數SignArguments
簽名api_signature

注意:各參數值需要進行url encode編碼(尤其中文時)

調用API時需要對第3種參數進行簽名,簽名步驟如下:

No.說明
1所有需簽參數名稱必須小寫
2所有參數值要進行url encode編碼(尤其中文時),把編碼結果轉小寫
3簽名參數按字母升序排序
4合成簽名字符串,合成時把“簽名密鑰”放到最前面,然后把已排序的需簽名參數清單按照“參數名稱+參數值”的方式追加到字符串
5對合成的簽名字符串進行 UTF8 編碼
6用MD5對簽名字符串進行加密生成32位簽名

第4步合成簽名串規則如下:

簽名密鑰參數名稱參數值參數名稱參數值......

關于簽名密鑰的特殊說明:

調用API使用的簽名密鑰
OpenAPI.OAuth.RequestTokenoauth_consumer_secret
Othersoauth_token_secret

?

UTF8編碼及MD5加密的C#參考實現代碼如下:

using System.Security;
using System.Security.Cryptography;
using System.Text;

?

//MD5加密
public static string GetMd5String(string str)
{
// First we need to convert the string into bytes, which
// means using a text encoder.
byte[] unicodeText = System.Text.Encoding.UTF8.GetBytes(str);

// Now that we have a byte array we can ask the CSP to hash it
MD5 md5 = new MD5CryptoServiceProvider();
byte[] result = md5.ComputeHash(unicodeText);

// Build the final string by converting each byte
// into hex and appending it to a StringBuilder
StringBuilder sb = new StringBuilder();
for (int i = 0; i < result.Length; i++)
{
sb.Append(result[i].ToString("x2"));
}

// And return it
return sb.ToString();
}

?

三、請求REST格式

請求REST格式由以下幾部分組成:

  • 請求REST地址,如:

http://youserverwebsite/api/rest
  • 調用API方法,如:

?api_method=OpenAPI.OAuth.RequestToken
  • 不需簽名參數,如:

&oauth_consumer_key=*************
  • 需簽名參數,如:

&oauth_timestamp=****&oauth_nonce=****&oauth_version=****
  • 簽名,如:

&api_signature=****

?

完整請求REST串:

http://youserverwebsite/api/rest?

api_method=OpenAPI.oauth.requesttoken

&oauth_consumer_key=****

&oauth_nonce=a65c5e5e903942a994bcb07250431e2b

&oauth_timestamp=1277216551

&oauth_version=1.0

&api_signature=6431e9d5b8508a2177920e8c3c624b1b

?

四、請求REST返回格式?

請求REST返回格式為xml格式或者json格式,目前僅支持xml格式,示例如下:

<rsp method="openapi.oauth.authorizetoken" flag="True" code="" desc="ok">
? <data>??? <token>4941c6de38650e58e75a1536d847c2b6</token>
??? <token_secret>c48bcf5ba5166a5b5c409e233811025b</token_secret>? </data></rsp>

返回結果格式說明:

參數名稱備注說明
method請求的API方法名稱
flag請求成功與否標識:true=成功;false=失敗;
code結果狀態碼
desc結果說明
data結果數據

?

?

[返回導航]

轉載于:https://www.cnblogs.com/liuxiaojun/archive/2010/09/03/openapi_plot.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/378981.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/378981.shtml
英文地址,請注明出處:http://en.pswp.cn/news/378981.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

壓縮、解壓 解決 客戶端查詢大批量數據時等待時間過長的問題

在項目中查詢時&#xff0c;因數據量大&#xff0c;導致網絡傳輸很慢&#xff0c;這就需要在服務器端查詢出的數據進行壓縮處理&#xff0c;后傳輸完了在客戶端進行解壓處理&#xff08;此為在Silverlight中壓縮與解壓&#xff09;&#xff1b; 具體方法如下&#xff1a; using…

C---已知正整數n是兩個不同的質數的乘積,試求出較大的那個質數。

已知正整數n是兩個不同的質數的乘積&#xff0c;試求出較大的那個質數。 思路&#xff1a;由題意可知&#xff0c;n為兩個質數之積&#xff0c;也就是說只要找到一個數能夠被n整除&#xff0c;這個數一定是質數&#xff01;&#xff01;&#xff01;2為最小的質數&#xff0c;…

isnumeric_Python字符串| isnumeric()方法與示例

isnumericisnumeric() is an in-built method in Python, which is used to check whether a string contains only numeric values or not. isnumeric()是Python中的內置方法&#xff0c;用于檢查字符串是否僅包含數字值。 Numeric contain all decimal characters and the f…

合并文件夾中子目錄_01 Linux之統計文件夾中文件個數以及目錄個數

案例分析&#xff1a;今天遇到了一個需要統計路徑下目錄個數的問題如果一個一個的去數會很麻煩&#xff0c;找到了一篇文章剛好提到這個&#xff0c;于是我將方法整理了一下。該方法的鏈接&#xff1a;Linux統計文件夾中文件個數以及目錄個數_SG匚hang的博客-CSDN博客_linux統計…

關于Makefile,Makefile.in,Makefile.am,Configure功能及相互關系的問題

目錄makefile寫法1. 簡介2. 上路之前3. 一個簡單的例子4.說明&#xff1a;4.1、autoscan4.2、 configure.scan4.3、aclocal4.4、autoconf4.5、Makefile.am4.6、 automake4.7、Makefilemakefile寫法 在 Unix 上寫程式的人大概都碰過 Makefile&#xff0c;尤其是用 C 來開發程式…

修改主鍵的SQL

declare defname varchar(100)declare cmd varchar(500)declare tablename varchar(100)declare keyname varchar(100) Set tablenameTemp1Set keynameid --需要設置的key,分隔 select defname name FROM sysobjects so JOIN sysconstraints sc ON so.id sc.constid …

西安理工大學863(轉載)

原創&#xff1a;https://blog.csdn.net/mzj15101229871/article/details/107613162 &#xff08;博主總結的很完整&#xff0c;很厲害&#xff0c;本人為了查看方便&#xff0c;才轉載的。本人只是個小白~&#xff09; 第一章 緒論 考試大綱 1&#xff09;了解數據元素、數…

原理簡介_消息通信的利器MQTT協議簡介及協議原理

- 沒用過但是必須得知道系列 -前言&#xff1a;相比于 XMPP&#xff0c; MQTT 的簡單輕量受到了不少工程師的喜愛&#xff0c;從物聯網到傳統的消息服務&#xff0c;簡單可依賴的 MQTT 到底為何讓人如此著迷呢&#xff1f;MQTT 協議&#xff0d;MQTT 協議簡介及協議原理MQTT(Me…

stl vector 函數_vector :: pop_back()函數以及C ++ STL中的示例

stl vector 函數C vector :: pop_back()函數 (C vector::pop_back() function) vector::pop_back() is a library function of "vector" header, it is used to deletes an element from the end of the vector, it deletes the element from the back and returns …

rtmp協議分析(Message 消息,Chunk分塊)

RTMP詳細分析&#xff08;三次握手&#xff09; librtmp分析&#xff08;發送數據包處理&#xff09; librtmp分析&#xff08;接收數據包處理&#xff09; 目錄1、Message(消息)2、Chunking(Message 分塊)2.1、 Basic Header(基本的頭信息)2.1.1、Basic Header為1個字節時2.1.…

【文摘】 雪念——作者:藍色妖姬

引用原文地址&#xff1a;點我 我本是惆悵之人&#xff0c;擁有不了所謂的快樂&#xff0c;筆尖譜寫不出唯美的風花雪月&#xff0c;只是流露這淡淡的疼痛&#xff0c;淡淡的哀傷。——藍色妖姬。 喜歡雪&#xff0c;喜歡佇立在雪地里&#xff0c;凝視著片片雪花從眼前飄落。 心…

將Sharepoint Server 2010部署到WINDOWS 7

首先祝CNBLOGS上的筒子們新年快樂。Sharepoint 2010 BETA版發布已經有段時間了&#xff0c;總是感覺MS的步伐要比我們這些追逐他的人快很多&#xff0c;不過確實他的每一次革新總給我們帶來了驚喜。 前幾天報名參加了SHAREPOINT 2010 DAY 活動(詳情)&#xff0c;等待著1月16日體…

嵌入式實訓-day1

完全復制一個文件的內容到另外一個文件 思路解析&#xff1a; 首先我這里使用了三個.c文件&#xff0c;分別是&#xff1a;yanyu.c、yanyu_old.c、yanyu_now.c 其中yanyu.c負責將yanyu_old.c中的內容讀入到buff緩沖區中&#xff0c;然后再從buff緩沖區中將數據寫入到yanyu_no…

stl中copy()函數_std :: rotate_copy()函數以及C ++ STL中的示例

stl中copy()函數C STL std :: rotate_copy()函數 (C STL std::rotate_copy() function) rotate_copy() function is a library function of algorithm header, it is used to rotate left the elements of a sequence within a given range and copy the rotating elements to…

計量經濟學建模_淺談統計學模型(兼計量經濟學模型)

計量經濟學模型是從統計學模型中衍生出來的&#xff0c;故將它們一并放在此處進行說明。實際上&#xff0c;很多人在很久之前就督促我寫一篇統計學和計量經濟學模型的文章&#xff0c;但我太懶惰&#xff0c;一直拖到現在&#xff0c;也是十分汗顏。先講一些統計學上的基礎故事…

linux文件存儲、inode、硬鏈接、軟鏈接

目錄介紹inode的內容inode的大小inode號碼目錄文件硬鏈接軟鏈接介紹 文件儲存在硬盤上&#xff0c;硬盤的最小存儲單位叫做"扇區"&#xff08;Sector&#xff09;。每個扇區儲存512字節&#xff08;相當于0.5KB&#xff09;。操作系統讀取硬盤的時候&#xff0c;不會…

OSPF路由器建立全毗鄰關系的狀態轉換過程

1&#xff09;Down狀態&#xff1a;路由器不與其他任何路由器交換任何OSPF消息&#xff1b;2&#xff09;Init狀態&#xff1a;接收方路由器已經接收到對端路由器的hello包&#xff0c;但是沒有從對端路由器的hello包中發現自己的router-id.。此時通信是單向的&#xff1b;3&am…

JavaScript打包與解包工具

JavaScript Packer&#xff1a; http://packer.skiyo.cn/ JavaScript UnPacker&#xff1a; http://packer.skiyo.cn/unpacker.html 轉載于:https://www.cnblogs.com/springmvc-hibernate/archive/2010/09/17/2484233.html

工具欄的打印圖標不見了_顯示屏下方的工具欄里的小圖標不見了怎么弄回來

優質回答 回答者&#xff1a;昂天大笑出門去一般右下角那些小圖標都是與系統同步啟動的一些功能&#xff0c;有的是沒必要讓它們同步啟動的&#xff0c;啟動的東西越多&#xff0c;系統反應就越慢。你說的工具欄里的小圖標沒了&#xff0c;可能是那些工具不能和系統同步啟動了&…

使用sshfs掛載linux遠程服務器目錄到windows

目錄下載winfsp 和 sshfs-win使用方式1、添加連接2、連接3、其他操作修改&#xff1a;刪除&#xff1a;下載winfsp 和 sshfs-win 前往 github 對應項目的 release 中下載最新版本&#xff1a; sshfs-win&#xff1a;https://github.com/billziss-gh/sshfs-win/releases winfs…