2009-06-05 53 views
2

我試圖將Google Friend Connect作爲解決方案中的一個標誌實施。我已經使用PHP客戶端實現了Facebook Connect,並且希望使用OpenSocial PHP客戶端庫(http://code.google.com/p/opensocial-php-client/)爲Google Friend Connect使用相同的方法(OpenSocial)。一旦用戶連接,我想獲得他們的OpenSocial id並將其登錄到數據庫中。Google Friend Connect OpenSocial PHP客戶端

這裏是到目前爲止的代碼:

$gfc_provider = new osapiFriendConnectProvider(); 
$gfc_auth = new osapiOAuth2Legged(GFCAPIKEY, GFCSECRET); 
$gfc_osapi = new osapi($gfc_provider, $gfc_auth); 
$batch = $gfc_osapi->newBatch(); 
$batch->add($gfc_osapi->people->get(array('userId' => '@me'))); 
$result = $batch->execute(); 
print_r($result); 

這裏的響應:

Array (
[0] => osapiError Object (
[errorCode:private] => 400 
[errorMessage:private] => 
    Cannot ask for me when anonymous 
    Error 400 
[response] => 
) 
) 

我不知道我做錯了。有什麼建議麼?

回答

3

對於那些希望使用谷歌朋友羣可以使用Facebook連接同樣的方式,在這裏我得到了它完成(在Arne的幫助下)。我已經包括Facebook連接的比較:

的Facebook(PHP):

$facebook = new Facebook(FBAPIKEY, FBSECRET); 
$facebook_id = $facebook->get_loggedin_user(); 

谷歌好友連接(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; 
} 

(請注意,你需要更新的文件,提供由Arne從上面的鏈接,使用osapiFCAuth對象)

的Facebook(JavaScript的):

FB.init("XXXXXXXXXXXXXXXXXXXXXXX", "xd_receiver.htm", {"reloadIfSessionStateChanged":true}); 

谷歌好友連接(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'}); 

的Facebook(HTML):

谷歌好友連接(HTML):

<div id="gfc"></div>