首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Friend Connect OpenSocial客户端

Google Friend Connect OpenSocial客户端
EN

Stack Overflow用户
提问于 2009-06-05 13:37:53
回答 2查看 1.7K关注 0票数 2

我正在尝试将Google Friend Connect实现为一个登录解决方案。我已经使用OpenSocial客户端实现了Facebook Connect,我想使用PHP客户端库(http://code.google.com/p/opensocial-php-client/)对Google Friend Connect (OpenSocial)使用相同的方法。一旦用户已经连接,我希望获得他们的OpenSocial id并将其登录到数据库中。

以下是到目前为止的代码:

代码语言:javascript
复制
$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);

以下是响应:

代码语言:javascript
复制
Array (
[0] => osapiError Object (
[errorCode:private] => 400 
[errorMessage:private] =>
    Cannot ask for me when anonymous
    Error 400
[response] => 
) 
) 

我不确定我做错了什么。有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-11 19:48:38

对于那些希望以与Facebook Connect相同的方式使用Google Friend Connect的人,以下是我是如何做到的(在Arne的帮助下)。我已经包括了Facebook Connect的比较:

Facebook (PHP):

代码语言:javascript
复制
$facebook = new Facebook(FBAPIKEY, FBSECRET);
$facebook_id = $facebook->get_loggedin_user();

Google Friend Connect (PHP):

代码语言:javascript
复制
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对象)

脸书(JavaScript):

代码语言:javascript
复制
FB.init("XXXXXXXXXXXXXXXXXXXXXXX", "xd_receiver.htm", {"reloadIfSessionStateChanged":true});

谷歌好友连接(JavaScript):

代码语言: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):

代码语言:javascript
复制
<fb:login-button size="medium" length="long"></fb:login-button>

Google Friend Connect (HTML):

代码语言:javascript
复制
<div id="gfc"></div>
票数 3
EN

Stack Overflow用户

发布于 2009-06-05 15:49:19

仅供参考,讨论已转移到开放社交客户端库谷歌集团(http://groups.google.com/group/opensocial-client-libraries/browse_thread/thread/9976bf92a13be775)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/955895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档