[]mixi

mixiアプリを作っていて、外部サーバーとの連携で嵌ったのでメモ。

署名についてよく分からなかった。
結局はOAuth.phpを使って、呼び出し先のphp
署名を入れておけばいいだけの話だったが。

mixiアプリと外部サーバーとの関係図
e6a78be68890

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