[]mixi
mixiアプリを作っていて、外部サーバーとの連携で嵌ったのでメモ。
署名についてよく分からなかった。
結局はOAuth.phpを使って、呼び出し先のphpに
署名を入れておけばいいだけの話だったが。
mixiアプリと外部サーバーとの関係図
1.mixiアプリ(javascript)から、
OpenSocialの外部連携用APIを用いて接続を試みる。
ソース
var callback = function(res) {
// ★コールバック用の処理★
};
var url = "★Pathを入れてください★";
var postData = {param2: "value2"};
var params = {};
params[gadgets.io.RequestParameters.REFRESH_INTERVAL] = 0;
params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.POST;
params[gadgets.io.RequestParameters.POST_DATA] = gadgets.io.encodeValues(postData);
// ★書名付きには、下記1行が必要★
params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.SIGNED;
gadgets.io.makeRequest(url, callback, params);
2.呼び出されるサーバサイド(php)に署名付きリクエストの検証を行う内容を載せる
ソース
require_once("OAuth.php");class MixiSignatureMethod extends OAuthSignatureMethod_RSA_SHA1 {
protected function fetch_public_cert(&$request) {
return <<< EOD