从 Facebook API 将数据插入 Meteor

2023-11-29

我按照给出的例子here从 FB Graph 中提取数据。到目前为止,我已经设法从 FB 中提取数据,但我不知道如何将其插入到 MongoDB 中。

目前 Facebook 的数据呈现如下:

{"data": [ { "picture": "https://photo.jpg", "id": "1234", "created_time": "2013-01-01T00:00:00+0000" }, { "picture": "https://photo.jpg", "id": "12345", "created_time": "2013-01-01T00:00:00+0000" }] }

我创建了一个名为“照片”的集合,并尝试使用以下命令插入数据Photos.inser(data)。这是我的服务器代码:

 function Facebook(accessToken) {
    this.fb = Meteor.require('fbgraph');
    this.accessToken = accessToken;
    this.fb.setAccessToken(this.accessToken);
    this.options = {
        timeout: 3000,
        pool: {maxSockets: Infinity},
        headers: {connection: "keep-alive"}
    }
    this.fb.setOptions(this.options);
}

Facebook.prototype.query = function(query, method) {
    var self = this;
    var method = (typeof method === 'undefined') ? 'get' : method;
    var data = Meteor.sync(function(done) {
        self.fb[method](query, function(err, res) {
            done(null, res);
        });
    });
    return data.result;
}

Facebook.prototype.getUserData = function() {
    return this.query('me');
}
Facebook.prototype.getPhotos = function() {
    return this.query('/me/photos?fields=picture');
}

Meteor.methods({
    getUserData: function() {
        var fb = new Facebook(Meteor.user().services.facebook.accessToken);
        var data = fb.getUserData();
        return data;
        _.forEach(data.data, function(photo) {
            Photos.insert(photo, function(err) { 
                if(err) console.error(err); 
            });
        });
    }
});

这是我的收藏代码:

Photos = new Meteor.Collection('picture');

现在,没有任何内容被插入到 MongoDB 中,我不明白为什么。

对我在这里做错了什么有什么想法,或者是否有更好的方法来解决这个问题? 提前致谢!


只是想让它发挥作用。非常感谢 Dave 和 emgee 的帮助!下面是为遇到同样问题的人提供的代码。另外,请告诉我是否有更好的方法来解决这个问题。

服务器代码:

function Facebook(accessToken) {
    this.fb = Meteor.require('fbgraph');
    this.accessToken = accessToken;
    this.fb.setAccessToken(this.accessToken);
    this.options = {
        timeout: 3000,
        pool: {maxSockets: Infinity},
        headers: {connection: "keep-alive"}
    }
    this.fb.setOptions(this.options);
}

Facebook.prototype.query = function(query, method) {
    var self = this;
    var method = (typeof method === 'undefined') ? 'get' : method;
    var data = Meteor.sync(function(done) {
        self.fb[method](query, function(err, res) {
            done(null, res);
        });
    });
    return data.result;
}

Facebook.prototype.getUserData = function() {
    return this.query('me/photos');
}

Meteor.methods({
    getUserData: function() {
        var fb = new Facebook(Meteor.user().services.facebook.accessToken);
        var data = fb.getUserData();
        _.forEach(data.data, function(photo) {
            Photos.insert(photo, function(err) { 
                if(err) console.error(err); 
            });
        });
    }
});

Meteor.publish('picture', function() {
  return Photos.find();
});

收藏:

Photos = new Meteor.Collection('picture');

Client:

Meteor.subscribe('picture');

Template.facebookphoto.helpers({
        pictures: function () {
             return Photos.find();
          }     
});

Template.fbgraph.events({
    'click #btn-user-data': function(e) {
        Meteor.call('getUserData', function(err, data) {
             $('#result').text(EJSON.stringify(data, undefined, 4));
         });
    }
});

HTML 模板:

<template name="fbgraph">
    <div id="main" class="row-fluid">
      {{> facebookphoto}}
    </div>

    <button class="btn" id="btn-user-data">Get User Data</button>
    <div class="well">
        <pre id="result"></pre>
    </div>
</template>


<template name="facebookphoto">
  <div class="photos">
    {{#each pictures}}
      {{> photoItem}}
    {{/each}}
  </div>
</template>

<template name="photoItem">
  <div class="photo">
    <div class="photo-content">
      <a href="{{source}}">
       <img class="img-rounded" src="{{picture}}">
      </a>
    </div>
  </div>
</template>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Facebook API 将数据插入 Meteor 的相关文章

随机推荐

  • ggplot2:对图例中的项目重新排序[重复]

    这个问题在这里已经有答案了 我有一个堆积条形图 我想重新排序图例的显示方式 我希望图例显示 社会 经济 和 环境 的顺序 但保持颜色相同 我一直在尝试不同的解决方案 但我是新手 可能写错了 我认为我的方向是正确的 但它不起作用 mortal
  • 在 Symfony2 上通过外部 API 配置用户身份验证时出现问题

    我在验证新 Symfony2 应用程序的用户身份时遇到问题 该应用程序通过 API 获取所有信息 因此不使用数据库 当用户进入登录页面时 他在登录表单中输入用户名和密码 然后 我必须使用 API 调用来验证他的身份 如果不是用户 则此 AP
  • 当用户分享 Facebook 链接时更新数据库

    用户在我的网站中共享链接后是否可以更新数据库 例如 如果他们分享链接 他们的帐户将获得一些积分 我怎样才能确保他们真正分享 Facebook 的链接 而不仅仅是点击分享然后关闭弹出窗口 我对 facebook 不熟悉 刚才尝试 google
  • Snakemake 无法处理很长的命令行?

    这是一个很奇怪的问题 当我的 input 中指定的rule部分是 input 有超过 500 个文件 snakemake 刚刚退出并显示消息 one of the commands exited with non zero exit cod
  • 如何创建一个 Mailto Share 按钮,该按钮打开一个窗口,可以在其中输入要发送到的电子邮件地址

    我一直在互联网上搜索以了解如何创建mailto共享按钮将打开一个新窗口 用户可以在其中输入他选择发送到的电子邮件地址 我附上了一组连续的图像作为操作示例 这其中有什么技巧呢 为什么我找不到任何有关如何编写此类代码的信息 堆栈溢出上也绝对找不
  • 如何阻止Savon向soap.body添加前缀

    这就是我创建客户端的方式 client Savon Client new do wsdl document my document wsdl endpoint my endpoint end 这就是我得到回复的方式 response cli
  • 将 PHP 数组传递给函数?

    我有以下代码 params array api user gt user api key gt pass to gt email protected subject gt testing from curl html gt testing
  • 如何更改 JAX-RS 应用程序中的 Jackson 版本 (WebSphere Liberty)

    我正在将 JAX RS 应用程序从 WebSphere 8 0 迁移到 WebSphere Liberty 8 5 5 在WebSphere 8 0 中 Jackson 由WebSphere 提供 我可以找到jackson core asl
  • 从 read 调用中得到负一

    我使用 SQL Developer 连接到具有只读访问权限的数据库 这是 TNS 连接 我使用 tnsnames ora 转发端口脚本和 SQL Developer 过去 有时在连接时会收到错误消息 从 read 调用中得到负一 供应商代码
  • 当通过启动器中的图标按下启动时,应用程序完全重新启动

    我正在尝试制作我的第一个 Android 应用程序的发布版本 以发送给一些测试人员 然而 我遇到了一个问题 当您退出应用程序 然后通过其图标启动它重新进入它时 它会重新启动整个应用程序 而不是返回到之前的位置 即使您退出后立即重新进入 也会
  • 如果未使用 CloseHandle 正确关闭,则重新打开串行端口会失败

    我正在 Windows 上使用 USB 设备 该设备被视为虚拟串行端口 我可以使用 CreateFile 和 ReadFile 函数与设备进行通信 但在某些情况下 我的应用程序不会调用 CloseHandle 当我的应用程序在开发中崩溃时
  • 混合模式程序集是针对版本“v1.1.4322”构建的

    我在 c net 4 0 应用程序中包含了一个 directX 播放器 该应用程序包含在此处 答案2 问题是 当我尝试初始化对象 即 Player mPlayer new Player 时 会发生此错误 混合模式程序集是针对运行时版本 v1
  • 画布被跨源数据污染

    我正在从我可以信任的第三方网站加载动态 jpeg 我试图getImageData 但浏览器 Chrome 23 0 抱怨 Unable to get image data from canvas because the canvas has
  • 快速找到以2为底的对数的整数部分

    计算浮点数以 2 为底的对数的整数部分的有效方法是什么 就像是 N ceil log2 f or N floor log2 f 对于浮点数 f 我想这可以以某种方式非常有效地实现 因为人们可能只需要访问浮点指数 EDIT2 我主要不感兴趣精
  • 参与者数量为奇数的每周小组分配算法

    问题有一个循环解决方案我之前问过 它对于偶数的人来说效果很好 但是一旦你实现了算法并尝试了它们 这些建议似乎都不起作用 我已经尝试了很多变化并且 将最后一个与一大堆其他人分组 第二组最后一组 不同的组合 2和4到底行的最后一个 我认为这会给
  • 检索 Matplotlib 热图颜色

    我正在尝试检索 matplotlib 热图上每个单元格的颜色 该热图由imshow 功能 例如由magic function below import matplotlib pyplot as plt import numpy as np
  • 如何使用 javascript d3 打开 json 文件?

    我正在尝试使用 javascript 从 JSON 文件中提取元素 但是收到一条错误消息 指出它无法加载 JSON 文件 这就是我的代码的样子
  • 异步nodejs执行顺序

    processItem什么时候开始执行 是否在某些项目被推入队列后立即开始 或者 for 循环必须在队列中的第一项开始执行之前完成 var processItem function item callback console log ite
  • 将列插入 pandas 数据框

    设想 我有一段代码 可以将 Excel 工作表中的数据读取到数据框中 合并到一个数据框中 并执行一些清理过程 Issue 我试图使用 pd insert 将具有给定值的列添加到数据帧的开头 但每次运行此行时 数据帧都会从变量资源管理器中消失
  • 从 Facebook API 将数据插入 Meteor

    我按照给出的例子here从 FB Graph 中提取数据 到目前为止 我已经设法从 FB 中提取数据 但我不知道如何将其插入到 MongoDB 中 目前 Facebook 的数据呈现如下 data picture https photo j