OK,我已經設法解決這個問題,我也被迷惑的文件,並沒有解釋清楚這意味着什麼用
檢索訂閱的這是在 指定的設備授權令牌。
由於本文檔的模糊用語,我還遇到了讓用戶註冊訂閱的問題。
爲了獲得Quickblox授權令牌(會話或用戶會話),您必須在之前生成的使用文檔中描述的參數的HMAC SHA1簽名:
- APPLICATION_ID(API應用標識符)
- AUTH_KEY(驗證密鑰)
- 時間戳(UNIX時間戳)
隨機數
- (Unix時間戳)
- 用戶[登錄]
- 用戶[口令]
- 簽名(HMAC SHA1,如下所述)
使用這些參數和它們的值應創建一個字符串,它看起來像這樣:
「APPLICATION_ID = 22 & AUTH_KEY = wJHd4cQSxpQGWx5 &隨機數= 33432 &時間戳= 1326966962 &用戶[登錄] [email protected] &用戶[口令] = test123'
然後HMAC SHA1使用你的應用程序祕密作爲HMAC祕密來獲取請求的簽名,例如, C#
using (HMACSHA1 hmac = new HMACSHA1(Encoding.ASCII.GetBytes(secret)))
{
hmac.Initialize();
byte[] buffer = Encoding.ASCII.GetBytes(value);
return BitConverter.ToString(hmac.ComputeHash(buffer)).Replace("-", "").ToLower();
}
一旦你有了這個簽名,你就可以發送請求到Quickblox獲得授權令牌,在這個例子中它是一個用戶會話令牌。
您需要發送所有用來生成簽名,包括生成的簽名的參數,在請求的主體,並POST
它的端點/session.json
例如 POST
到/session.json
{
"application_id":"2",
"auth_key":"DtF9cZPqTF8Wy9Q",
"timestamp":"1333630392",
"nonce":"1236221330",
"user":
{
login: "[email protected]",
password: "test123"
},
"signature":"eb0ec2d8c8184a3e62b41da2afb6e8d690577fa4"
}
你得到的響應應該有授權令牌,我們需要爲用戶會話的請求。
爲了解決您的問題
正如您所提到,此令牌不用於獲取用戶訂閱工作,並返回一個沒有發現,儘管認購推送通知已經存在的和被鏈接到用戶。
發生這種情況的原因是因爲用戶與設備有1:M的關係,並且Quickblox不會返回所有訂閱,只會訂閱與請求源自的特定設備有關的訂閱,但您必須告訴它。
我們缺少的元素是將設備參數添加到授權令牌,該授權令牌描述得非常糟糕,(如果在的文檔中)。
爲了使其正常工作,我們需要將device[udid]
和device[platform]
添加到授權請求中。這標識了用戶以及他們正在使用QuickBlox的特定設備。
要做到這一點,做同樣如上所述,但價值,你HMAC SHA1現在看起來應該是這樣
「APPLICATION_ID = 22 & AUTH_KEY = wJHd4cQSxpQGWx5 &設備[臺] =機器人&設備[ UDID] = 2374682h23780239j &隨機數= 33432 &時間戳= 1326966962 &用戶[登錄] [email protected] &用戶[口令] = test123'
請注意,如果你把鑰匙放在了不同的順序,你會得到一個「意外的簽名」的錯誤,設備[臺]一定要來AUTH_KEY等後...
使用此字符串來生成你的簽名,並然後使用與上述類似的請求發送它:
例如 POST
到/session.json
{
"application_id":"2",
"auth_key":"DtF9cZPqTF8Wy9Q",
"timestamp":"1333630392",
"nonce":"1236221330",
"user":
{
login:"[email protected]",
password:"test123"
},
"device":
{
"platform":"android",
"udid":"2374682h23780239j"
}
"signature":"5t4d2d8c81848b6c4s41da2afb6e8d690889bc4"
}
你Quickblox回來應該再被用作QB-Token
頭值使用請求訂閱時令牌: GET
/subscriptions.json
提高門票和淘我設法找到後上網這個解決方案絆倒了這個代碼並研究了一會兒。
Sourcecode for Blackberry PushAuth using Quickblox
我希望這可以幫助別人卡住這個誰,因爲我認爲阿列克西GRON已經2個月後解決了這個問題。
我有同樣的問題,這是爲你解決嗎? –