Facebook Connect と同じように Google Friend Connect を使用したいと考えている人のために、私が (Arne の助けを借りて) 実現した方法を次に示します。Facebook Connect の比較を含めました。
フェイスブック (PHP):
$facebook = new Facebook(FBAPIKEY, FBSECRET);
$facebook_id = $facebook->get_loggedin_user();
Google フレンド コネクト (PHP):
if ($_COOKIE["fcauth" . GFCSITEID] != ''){
$gfc_provider = new osapiFriendConnectProvider();
$gfc_auth = new osapiFCAuth($_COOKIE["fcauth" . GFCSITEID]);
$gfc_osapi = new osapi($gfc_provider, $gfc_auth);
$batch = $gfc_osapi->newBatch();
$batch->add($gfc_osapi->people->get(array('userId' => '@me')));
$result = $batch->execute();
$opensocial_id = $result[0]['data']->id;
}
(osapiFCAuth オブジェクトを使用するには、上記のリンクから Arne が提供する更新されたファイルが必要であることに注意してください)
フェイスブック (JavaScript):
FB.init("XXXXXXXXXXXXXXXXXXXXXXX", "xd_receiver.htm", {"reloadIfSessionStateChanged":true});
Google フレンド コネクト (JavaScript):
google.friendconnect.container.setParentUrl('/');
google.friendconnect.container.initOpenSocialApi({
site: 'XXXXXXXXXXXXXXXXXXXXX',
onload: function(securityToken) {
var req = opensocial.newDataRequest();
req.add(req.newFetchPersonRequest('VIEWER'), "viewer");
req.send(function(response) {
var data = response.get('viewer').getData();
if (data){
var opensocial_id = data.getId();
if (opensocial_id && $("div#gfc").length > 0) window.location.reload();
}
});
}
});
if ($('div#gfc').length > 0) google.friendconnect.renderSignInButton({'id':'gfc', 'text':'Connect with Google', 'style':'long'});
フェイスブック (HTML):
<fb:login-button size="medium" length="long"></fb:login-button>
Google フレンド コネクト (HTML):
<div id="gfc"></div>