标签: facebook-javascript-sdk

Facebook Javascript SDK安全性

我正在使用facebook javascript sdk为网站提供用户登录功能.

我想做的是简单地获取登录用户的唯一facebook id,然后使用id将数据发送到mysql数据库/从mysql数据库获取数据,以确定所述用户可以使用哪些数据.

但是我并不觉得这很安全.虽然我没有存储像信用卡详细信息等敏感的东西,但我显然希望它尽可能安全.

我担心的是,随着javascript的存在,有人可能会伪造facebook id而只是拉出他们想要的东西.

我知道php sdk会为这个问题提供一个可靠的解决方案,但我喜欢javascript主要是因为它易于使用,我有它的基础设置(我承认,我很懒).

所以,我的问题是:

  1. 这种设置是否会像我认为的那样不安全?

  2. 除了切换到php sdk之外,我还能做些什么来提高这种系统的安全性吗?

谢谢!

security facebook-javascript-sdk

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

Facebook Javascript SDK窗口位置重新加载不适用于Firefox

我正在使用Facebook Connect建立一个网站,因此使用Facebook Javascript SDK. 问题:使用Firefox时,登录或注销后页面无法正常重新加载.

FB.Event.subscribe(
   '{% if current_user %}auth.logout{% else %}auth.login{% endif %}',
    function(response){
        window.location.reload();
});
Run Code Online (Sandbox Code Playgroud)

显然,它看起来像一个已知的问题(只需键入"窗口位置重新加载不在Firefox上工作",你会得到很多结果)

更确切地说,Firefox在重新加载页面时似乎没有发送正确的cookie ...
- 当我点击登录时,一旦Facebook登录并设置了cookie,Firefox就不会发送任何cookie
- 当我点击退出时一旦Facebook将我退出并删除了cookie,Firefox就会发送之前存在的cookie.
我总结它使用一些"缓存功能".

我尝试按照此处的描述制定解决方法并实现此目的:

redirect_url = encodeURIComponent(window.location.href);
url = window.location.href + "account/login?redirect_url=" + redirect_url;
window.location.replace(url);
Run Code Online (Sandbox Code Playgroud)

但问题仍然存在(我猜的缓存......)你可以帮我解决这个问题吗?

谢谢.

firefox location window reload facebook-javascript-sdk

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

是否有Facebook JavaScript SDK的TypeScript接口定义

TypeScript包包含Node.js和jQuery的接口定义.我想知道是否有人已经为Facebook JavaScript SDK编写了定义.

facebook-javascript-sdk typescript

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

Facebook:打开图表操作而不是聚合

我正在开发一个Facebook开放图形应用程序,该应用程序允许登录并通过我的网站进行身份验证的用户在其Facebook时间线上汇总了"最近阅读"的文章.

我创建了聚合并添加预览对象似乎工作,它在"时间轴预览"区域中正确显示.发布操作有效并且它出现在活动日志中(虽然不在时间线中,除非我手动告诉它显示在那里).

使用facebooks url scraper,看来我的链接工作正常,所有预期的元标记确实出现了,但是再次 - 没有聚合.

到目前为止,我的应用程序已经发布了大概8或9个故事,但仍然没有聚合.

这是一些代码..

Facebook登入

$('.facebook-login').click(function() {
        var loginBool = $(this).hasClass('loginfb');

        if (!loginBool) {
            FB.logout(function(response){
                if (response.authResponse) {
                    updateStatus();
                }
            });
        }
        else if (loginBool) {
            FB.login(function(response){
                if (response.authResponse) {
                    updateStatus();
                }
            }, {scope: 'user_about_me,user_birthday,user_interests,user_likes,user_location,read_stream,email,publish_actions,publish_stream'});
        }
    });
Run Code Online (Sandbox Code Playgroud)

FB.app共享代码

$('.read-action').click(function() {
    FB.api('/me/news.reads', 'post',{
        article : window.location.href
    }, function(response){ console.log(response)} );
});
Run Code Online (Sandbox Code Playgroud)

发布一个动作记录了javascript控制台的动作ID,就像我说的那样,它显示在活动日志中,我可以在允许它显示在我的时间轴上看到它.

聚合设置如下:

要显示的数据:读取

布局显示:列表

我做的事情是否显然是错误的,或者让我的帖子聚合所需的步骤是什么?

facebook-graph-api facebook-javascript-sdk facebook-opengraph

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

publish_checkins权限2013年7月中断更改

我收到了我的Facebook应用程序的开发人员提醒,我用它从手机间隙登录.它说

MyApp目前正在使用以下不推荐使用的功能:publish_checkins扩展权限.

但我没有使用这种许可!我只使用user_birthday,email,user_likes,user_location和publish_actions.

如何在不出现问题的情况下删除警报并迁移到2013年7月版?

谢谢你的帮助!

塞巴斯蒂安

facebook facebook-javascript-sdk cordova

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

通过FB.ui Share Dialog动态生成明确共享的开放图形故事的描述

在我关于这个主题的所有研究中,90%的研究已经过时,这让我相信Facebook JS SDK最近有关于明确共享Open Graph故事的变化.我有以下代码:

function postToFB(desc){
FB.ui({
    method: 'share_open_graph',
    action_type: 'mynamespace:myaction',
    action_properties: JSON.stringify({
        myobject: "myobjectid"
    })
}, function(response){});
}
Run Code Online (Sandbox Code Playgroud)

这个问题是,它将尝试仅使用我在应用程序设置的Facebook Open Graph部分设置的设置来共享myobject.我想使用相同的对象,但每次共享时都用动态'desc'变量更改描述.有谁知道如何做到这一点?我可以在我的应用程序设置的Facebook Open Graph部分中静态设置标题,但我需要在每次共享时动态设置它.

我已经在Facebook JS SDK中搜索了可以添加到action_properties的其他键/值对,但SDK信息在这方面非常有限.

UPDATE

我修改了代码以包含2个调用,一个用于创建对象,第二个用新对象的信息发布故事.这是代码:

function postToFB(desc){
FB.api(
    'me/objects/mynamespace:myobject',
    'post',
    {
    object: {
        "app_id": myappid,
        "type": "mynamespace:myobject",
        "url": "myurl",
        "title": "mytitle",
        "image": "myimgurl",
        "description": desc
        }
    },
    function(response) {
        console.log(response);
        FB.ui({
            method: 'share_open_graph',
            action_type: 'mynamespace:myaction',
            action_properties: JSON.stringify({
                myobject: response.id
        })
    }, function(r){});
});
}
Run Code Online (Sandbox Code Playgroud)

然而,根据对这个问题的评论: Facebook对象API - 创建一个Facebook工作人员的重复对象表示这种方法不会被Facebook批准,因为用户的一个动作不能产生两个帖子,这个代码现在可以做到.一个人将该对象发布到Facebook用户的活动日志,并将其发布到活动日志和新闻源.

如果我只能进行一次调用并从FB.ui函数本身规定myobject描述应该是什么,那将是很好的.有谁知道如何做到这一点?

facebook facebook-graph-api facebook-javascript-sdk fb.ui facebook-opengraph

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

Facebook登录所需的CSP规则

允许Facebook登录的必备规则是哪些?

我目前允许这些:

defaultSrc: ["'self'",
        '*.facebook.com',
        '*.akamaihd.net'],
        scriptSrc: ["'self'",
         '*.facebook.com',
         '*.akamaihd.net',
         "'unsafe-inline'",
         "'unsafe-eval'"],
        frameSrc: [
        "'self'",
        '*.facebook.com',
        '*.akamaihd.net',
        styleSrc: ["'self'",
         "'unsafe-inline'"],
        imgSrc: ["'self'",
        '*.akamaihd.net',
        '*.facebook.com']
Run Code Online (Sandbox Code Playgroud)

facebook-javascript-sdk content-security-policy

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

如何使用图形API获取Facebook群组列表

在Graph Api Explorer中,我没有找到任何许可,例如user_groups。我选择了所有的“用户数据权限”和“扩展权限”,但是没有用。

在图api资源管理器中,我正在使用此命令GET->/v2.4/me/groups。我得到空的JSON数据,像这样。

{
  "data":[
  ]
}
Run Code Online (Sandbox Code Playgroud)

并且,如果我使用的是旧版的api版本2.2,GET->/v2.2/me/groups那么我只能获得我所管理的组,而不是所有组。

如果有人有此经验,也有解决方案,请帮助我解决问题。

facebook usergroups facebook-graph-api facebook-javascript-sdk facebook-group

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

如何使用facebook messenger-checkbox修复CSP问题

我正在尝试使facebook messenger复选框工作,我已将以下代码添加到我的html中

window.fbAsyncInit = function() {
    FB.init({
      appId: "{{ fb_app_id }}",
      xfbml: true,
      version: "v2.6"
    });

    FB.Event.subscribe('messenger_checkbox', function(e) {
      console.log("messenger_checkbox event");
      console.log(e);

      if (e.event == 'rendered') {
        console.log("Plugin was rendered");
      } else if (e.event == 'checkbox') {
        var checkboxState = e.state;
        console.log("Checkbox state: " + checkboxState);
      } else if (e.event == 'not_you') {
        console.log("User clicked 'not you'");
      } else if (e.event == 'hidden') {
        console.log("Plugin was hidden");
      }

    });
  };

  (function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0]; …
Run Code Online (Sandbox Code Playgroud)

facebook facebook-javascript-sdk facebook-messenger facebook-messenger-bot

5
推荐指数
2
解决办法
7332
查看次数

Facebook Graph API评论未返回

我正在尝试从Facebook API获得有关评分的评论。

首先,我请求我拥有的页面的评分列表:

https://graph.facebook.com/v3.0/me/ratings?fields=open_graph_story?access_token=[access_token]
Run Code Online (Sandbox Code Playgroud)

响应:

{
  "data": [
    {
      "open_graph_story": {
        "message": "The best place in the world(s), and this is to reach that limit in the facebook review.",
        "start_time": "2018-05-24T22:56:23+0000",
        "type": "pages.rates",
        "data": {
          "rating": {
            "value": 5,
            "scale": 5
          },
          "review_text": "The best place in the world(s), and this is to reach that limit in the facebook review.",
          "is_hidden": false,
          "language": "en"
        },
        "id": "1805660589743235"
      }
    },
    {
      "open_graph_story": {
        "message": "Very good, not excellent though. Does Facebook …
Run Code Online (Sandbox Code Playgroud)

facebook facebook-graph-api facebook-javascript-sdk

5
推荐指数
0
解决办法
350
查看次数