标签: facebook-javascript-sdk

Facebook JavaScript SDK中函数注释方法的目的是什么?

我开始使用facebook javscript SDK,当我阅读源代码时,我发现了一件有趣的事情.

代码示例如下:

/**
 * Annotates a function with a meta object
 */
function annotate(fn, meta) {
    meta.superClass = fn.__superConstructor__;
    fn.__TCmeta = meta;
    return fn;
}

// export to global
__w = annotate;

/**
 * when using the annotate function
 */
function sprintf(format) {
   // function body
}
__w(sprintf, {"signature":"function(string)"});   // <-- what is the purpose of doing this?
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是用于什么?这样做有什么好处

仅供参考,整个源代码在这里,你可以看到很多annotate()被使用

http://connect.facebook.net/en_US/all/debug.js

javascript annotations facebook-javascript-sdk

8
推荐指数
1
解决办法
117
查看次数

Facebook使用JavaScript SDK登录错误:"重定向URI未列入白名单"

我希望我的网站登录Facebook,但我看到这个错误.

给定的URL未在客户端OAuth设置中列入白名单:此重定向失败,因为重定向URI未在应用的客户端OAuth设置中列入白名单.确保启用了客户端和Web OAuth登录,并将所有应用程序域添加为有效的OAuth重定向URI.

<!DOCTYPE html>
    <html>
    <head>
    <title>Facebook Login JavaScript Example</title>
    <meta charset="UTF-8">
    </head>
    <body>
    <script>
      // This is called with the results from from FB.getLoginStatus().
      function statusChangeCallback(response) {
        console.log('statusChangeCallback');
        console.log(response);
        // The response object is returned with a status field that lets the
        // app know the current login status of the person.
        // Full docs on the response object can be found in the documentation
        // for FB.getLoginStatus().
        if (response.status === 'connected') {
          // Logged into your app …
Run Code Online (Sandbox Code Playgroud)

facebook facebook-graph-api facebook-javascript-sdk facebook-login

8
推荐指数
1
解决办法
5万
查看次数

如何在app引擎上使用python删除用户的cookie?

我在谷歌应用引擎(webapp)上使用python facebook api.我想将用户的cookie设置为在用户退出应用程序时过期.此cookie由Javascript Facebook API设置.

这是facebook api函数显示facebook api如何访问facebook cookie:

def get_user_from_cookie(cookies, app_id, app_secret):
    cookie = cookies.get("fbs_" + app_id, "")
    if not cookie: return None
    args = dict((k, v[-1]) for k, v in cgi.parse_qs(cookie.strip('"')).items())
    payload = "".join(k + "=" + args[k] for k in sorted(args.keys())
                      if k != "sig")
    sig = hashlib.md5(payload + app_secret).hexdigest()
    expires = int(args["expires"])
    if sig == args.get("sig") and (expires == 0 or time.time() < expires):
        return args
    else:
        return None
Run Code Online (Sandbox Code Playgroud)

我可以通过执行以下操作来调用此函数:

class WelcomePage(webapp.RequestHandler):
    def getFacebookCookie(self):
        cookie = …
Run Code Online (Sandbox Code Playgroud)

python google-app-engine session-cookies facebook-graph-api facebook-javascript-sdk

7
推荐指数
1
解决办法
4530
查看次数

如何从Facebook签名请求中获取访问令牌?

我们使用Facebook Javascript SDK来验证我们的用户.

用户进行身份验证后,用户将获得包含已签名请求的fbsr_ <app_id> cookie.

然后我们使用AJAX将一些信息发布到我们的服务器.服务器接收带有签名请求的cookie,但是当服务器解析cookie中的签名请求(修改过的python SDK)时,它会将JSON对象解码为:

{
   "algorithm": "HMAC-SHA256",
   "code": "2.AQDBJ3-ZpURb9P4T.3600.1316037600.1-786359552|BNK6FGOAkvMs7slboQMSIEJYDWc",
   "issued_at": 1316031333,
   "user_id": "786359552"
}

这与我们应该获得的签名请求文档相反.

服务器需要访问令牌,因此可以使用GraphAPI获取一些其他信息.

我们如何从签名请求中获取访问令牌?

facebook oauth-2.0 facebook-javascript-sdk

7
推荐指数
1
解决办法
7016
查看次数

facebook在调用FB.init()之前调用按钮不显示:: FB.getLoginStatus()

我只想在我的网站上使用基本的facebook按钮.我按照facebooks网站上的说明进行操作(http://developers.facebook.com/docs/reference/plugins/like/).我尝试了HTML5,XFBMLiFrame方式,没有任何快乐.所以我想也许这与我的网站干扰有关.所以我创建了一个简单的html页面,如下所示,它仍然FB.getLoginStatus()在调用FB.init()错误之前给我调用.

<html>
<body>
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-like" data-href="http://www.facebook.com/[mypage]" data-send="false" data-width="450" data-show-faces="false"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

更新:我删除了上面所有的东西回到iFrame唯一的方法,它的工作原理,但只在Firefox中.Chrome和IE9我仍然没有得到任何错误报告.为什么下面的这一行只能在FireFox中工作(显然[myPage]部分被换掉了)?

 <iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.facebook.com%2F[myPage]&amp;send=false&amp;layout=standard&amp;width=450&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:35px;" allowTransparency="true"></iframe>
Run Code Online (Sandbox Code Playgroud)

html5 facebook facebook-like facebook-javascript-sdk

7
推荐指数
1
解决办法
7867
查看次数

Facebook javascript sdk必须使用活动访问令牌来查询有关当前用户的信息

在我的代码中我有

FB.api('/me/friends', function(response) {
            if(response.data) {
                //TODO : what to do if no. of friends is more than 5000 (pagination by fb)
                friends_data=response.data;
                dijit.registry.byId("mainWidget_div").set_friends_data(friends_data);
            } else {
                alert("Error!");
            }

          });
Run Code Online (Sandbox Code Playgroud)

这给出了一个错误.但是,如果我手动调用此函数(在控制台上),则没有错误

FB.api('/me/friends', function(response){r=response;});
//wait a while
r
Run Code Online (Sandbox Code Playgroud)

现在r.data是我的一群朋友.

我检查了网络面板,我收集到,当我手动调用它时,访问令牌会自动插入到请求URL中,当通过代码调用它时,访问令牌不会被插入.

我的应用程序中的完整fb sdk加载代码是这样的:

<script type="text/javascript">
      // You probably don't want to use globals, but this is just example code
      var fbAppId = "{{facebook_app_id}}";

      // This is boilerplate code that is used to initialize the Facebook
      // JS SDK. …
Run Code Online (Sandbox Code Playgroud)

facebook facebook-graph-api facebook-javascript-sdk facebook-access-token

7
推荐指数
1
解决办法
1万
查看次数

如何在使用PassportJS for Facebook时区分登录和注册

我正在尝试在Google Analytics上设置目标以跟踪Sign Ups,因此我设置了一个"谢谢"页面作为我的网址目标.当我的用户使用他们的电子邮件地址注册但是当他们使用Facebook注册/登录时,它很有效.当他们登录时,他们被重定向到感谢页面,因为在使用Passport JS和Node设置Facebook时只有一个url回调.

这是我的代码:

passport.serializeUser(function(user, done) {
  done(null, user);
});

passport.deserializeUser(function(id, done) {
  UserActivity.findOne(id,'uid ref', function (err, user) {
    done(err, user);
  });
});


passport.use(new FacebookStrategy({
    clientID: 'XXXXXXXXXXXX',
    clientSecret: 'XXXXXXXXXXXXXXXX',
    callbackURL: "https://www.xxxxxxx.com/auth/facebook/callback"
  },
  function(accessToken, refreshToken, profile, done) {
    //console.log(profile);
    User.findOne({ uid: profile.id }, function(err, uInfo) {
      if(err) console.log('Error: '+err);
      else{
        //User exists: we are done
        if(uInfo){
          done(err, uInfo);
        }
        else{
            //User doesn't exist: we create a new one
            var newUser = new User ({
              uid: profile.id,
              email:profile.emails[0].value,
              ref: 'Facebook'
            }); …
Run Code Online (Sandbox Code Playgroud)

node.js facebook-javascript-sdk passport.js

7
推荐指数
1
解决办法
1383
查看次数

Apache Cordova Facebook插件在Init上失败 - Android

我目前正在构建一个应用程序,它将使用Apache Cordova Facebook插件来通信和验证用户.

我大约一个月前就开始工作了,当我决定升级到最新版本的Apache Cordova Facebook插件和Facebook SDK时,我接近了开发的结束 - 现在我无法让它运转起来.

我不确定Facebook是否已经改变了一些东西,或者Cordova Facebook Connect插件现在是否有问题 - 我真的被卡住了:(

以下是我正在采取的步骤和结果:

注意:我每次都尝试从计算机中删除所有程序和SDK,以消除任何交叉版本问题.

android facebook facebook-javascript-sdk cordova facebook-sdk-3.0

7
推荐指数
1
解决办法
2274
查看次数

为什么我在Facebook登录页面上收到此警告消息?

我在本地部署的Web应用程序上首次尝试使用Facebook登录API.

在他们的文档中使用片段初始化API,并在我的HTML页面上有一个按钮

<button type="button" onclick="fbLogin()">
Run Code Online (Sandbox Code Playgroud)

哪里fbLogin()

function fbLogin() {
    FB.login(function(response) {
        console.log(response);

        // handle the response
        if (response.status === 'connected') {
            // Logged into your app and Facebook.
        } else if (response.status === 'not_authorized') {
            // The person is logged into Facebook, but not your app.
        } else {
            // The person is not logged into Facebook, so we're not sure if
            // they are logged into this app or not.
        }
    }, {scope: …
Run Code Online (Sandbox Code Playgroud)

facebook facebook-javascript-sdk

7
推荐指数
0
解决办法
689
查看次数

X天之内从http页面调用FB.api方法将停止工作。请更新您的网站以使用https进行Facebook登录

我正在本地主机上开发一个应用程序,突然出现此错误:

X天之内从http页面调用FB.api方法将停止工作。请更新您的网站以使用https进行Facebook登录。

时间到了,我仍然可以在localhost中进行开发吗?

facebook facebook-graph-api facebook-javascript-sdk

7
推荐指数
1
解决办法
7500
查看次数