Tag: facebook

如何从node-webkit获取无托pipe页面的桌面应用程序的访问令牌?

我正在尝试使用node-webkit创build一个桌面应用程序。 这个应用程序的一部分需要使用Facebook获取/发布一些内容到任何个人资料(Facebook用户),使用我的个人电脑上的桌面应用程序。 关于facebook api文档( https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.0 ),我必须手动实现loginstream程并使用以下URI作为redirectURI: https://www.facebook.com/connect/login_success.html : https://www.facebook.com/connect/login_success.html 目前,在我的node-webkit应用程序中,通过一个子窗口(一个popup窗口),用户可以loginFacebook并授权我的桌面应用程序与其configuration文件进行交互。 这是代码的一部分: var url = "https://www.facebook.com/dialog/oauth?client_id=myclientID&redirect_uri=https://www.facebook.com/connect/login_success.html&response_type=token&scope=publish_actions"; loginWindow = window.open(url, 'Login facebook', 'location=yes,toolbar=yes,menubar=yes,directories=yes,status=yes,resizable=yes,scrollbars=yes,height=480,width=640', false); 之后,用户被redirect到下面的URI,正如文档中提到的,访问令牌显示正确: https://www.facebook.com/connect/login_success.html#access_token=theBigTokenString&expires_in=3864 。 但它只出现几秒钟,之后,该url被replace为https://www.facebook.com/connect/blank.html#_=_ (带有安全警告消息)。 我读过一些build议添加eventListener像hashchange到打开的窗口,以捕获访问令牌。 但是,在子窗口内部redirect后,我不再可以通过JavaScript与它进行交互。 所以最后,我无法获得子窗口已经检索的访问令牌,并使其可见几秒钟。 任何人都可以帮助我得到这个用户访问令牌node-webkit? 我真的不想在我的桌面应用程序和Facebook之间使用服务器(用于托pipe网页)。 预先感谢您的帮助。

Facebook Messenger,发送收据时临时发送邮件失败

我想用虚拟数据发送给我的收据。 我使用这个库简化了发送到Facebook的消息。 我的有效载荷的结构是这样的: var payload = { template_type: 'receipt', recipient_name: '@' + user.name + ' ' + user.surname, order_number: (new Date).getTime(), currency: 'USD', payment_method: 'Наличными', order_url: 'http://www.example.com', timestamp: (new Date).getTime() + '', elements: [ { title: title, subtitle: subtitle, quantity: 1, price: 20, currency: 'USD', image_url: image_url } ], address: { street_1:"Nurly tau", street_2:"", city:"Almaty", […]

node.js – everyauth – Facebook API和会话处理

我运行一个node.js服务器应用程序,使用everyauth作为我的身份validationscheme,并尝试从我的服务器访问Facebook API。 一旦用户login(通过使用Facebook模块的everyauth),我目前处理这种方式是: var oauth = everyauth.facebook.oauth; oauth.get('https://api.facebook.com/method/fql.multiquery?format=json&queries=' + multiquery, req.session.auth.facebook.accessToken, function (err, data) { // do stuff here }); 这工作最初但几分钟后,通常约10米的不活动,我开始从Facebook API获得过期的令牌响应: Error validating access token: Session has expired at unix time… 在阅读了一些Facebook文档之后 ,似乎大多数访问令牌都应该持续默认的2小时,所以我想知道我是不是以正确的方式构buildAPI调用。 任何build议/想法的欢迎,谢谢! 编辑: 只是多一点的信息,从错误调用返回的过期unix时间确实less于当前时间,只是不知道为什么会这么短。 在此期间,我会做更多的debugging…

通过我的Facebook应用程序处理Facebook注册 – 使用nodejs everyauth

我们使用everyauth将Facebook身份validation集成到我们的用户帐户系统(nodejs,express)中。 现在做什么(在伪代码中): everyauth .facebook .appId('….') .appSecret('…..') .findOrCreateUser( function (session, accessToken, accessTokenExtra, fbUserMetadata) { … } .redirectPath('/internal/facebook'); 身份validation完美。 问题是在经历这个stream程时: 用户现在没有他的用户代理的Facebook cookie(用户没有login到Facebook)。 用户通过Facebook调用身份validation(调用everyauth的/ auth / facebook服务) Facebook“login/login”页面已加载。 用户想创build新的Facebook帐户,并select“注册Facebook”。 用户完成注册的详细信息,然后通过点击他刚刚收到的邮件中的链接,通过我们的应用程序确认他的Facebook帐户注册。 所以用户去他的邮件,点击链接, 他被redirect到我们的用户帐户的根目录“/”。 – 这是一个没有UI的Web服务,它为不同的应用程序提供用户帐户服务。 问题如下: 在通过我们的应用程序注册Facebook之后,我们如何获得用户? 在这种情况下不调用findOrCreateUser() 。 在用户通过我们的应用程序注册到Facebook后(注册成功后),我们如何覆盖redirect到“/”的行为?

从facebook使用nodejs和expression所有的相册

我需要使用nodejs和express来从facebook获取所有相册。我正在使用护照来validation用户身份。 passport.use(new FacebookStrategy( { clientID : FACEBOOK_APP_ID, clientSecret : FACEBOOK_APP_SECRET, callbackURL : FACEBOOK_CALL_BACK_URL, profile : true }, function(accessToken, refreshToken, profile, done) { FB_ACCESS_TOKEN = accessToken; process.nextTick(function() { console.log("FB_ACCESS_TOKEN : " + FB_ACCESS_TOKEN); return done(null, profile); }); })); 在callback中,我要求范围user_status,user_photos和offline_access app.get('/auth/facebook', passport.authenticate('facebook'), { scope : [ 'user_status', 'user_photos','offline_access'] }, function(req, res) { }); 获取我正在使用的所有相册 app.get('/albums', function(req, res) […]

Node.js Passport在页面加载上获得Facebook会话

我有护照Facebook Strategy工作正常。 然而,阅读facebook文件,我偶然发现: FACEBOOK DOCS 使用查询string设置时需要特别注意的事项: 如果您想在App Center中使用服务器端身份validationstream程,请确保在交换访问令牌的代码时正确传递redirect_uri参数。 您应该将您的redirect_uri参数设置为您网站的点击后到达url。 在大多数情况下,URL将如下所示: http://www.example.com/?fb_appcenter=1&fb_source=search&code=CODE_HERE因此您应该将您的redirect_uri设置为相同的值。 请确保此逻辑是dynamic的,因为附加到您的点击后到达url的查询参数可能会更改。 在应用程序中心有一个visit websitebutton,将用户发送到应用程序,并在进程中login。我怎样才能做到这一点与护照? 我必须将查询string添加到callbackURL吗? 我猜这是同样的问题,但我也需要类似于facebook javascript SDK提供的FB.getLoginStatus()来链接用户,如果他们的facebook打开并且以前添加了该应用程序。 这一切是由passport提供的任何方式吗?

用摩卡testingFacebook应用程序

我正在开发一个使用Facebooklogin的node.js应用程序,我正在尝试使用mocha进行单元和集成testing。 所以在一个函数,我有这个代码为了login: exports.loginFacebook = function (done){ request({uri:"https://graph.facebook.com//oauth/access_token?client_id={app-id}&client_secret={app-secret}&grant_type=client_credentials", method: "GET", timeout: reqOpts.timeout}, function(err, res, body) { if(err){ throw err; } else{ uri2 = "https://graph.facebook.com/APP_ID/accounts/test-users?"+String(body); request({uri:uri2, method: "GET", timeout: reqOpts.timeout}, function(err, res, body) { if(err){ throw err; } else{ login_url = JSON.parse(body).data[0].login_url console.log(login_url); request({uri:login_url, method: "GET", timeout: reqOpts.timeout}, function(err, res, body) { if(err){ throw err; } else{ […]

使用casperjs“使用Facebooklogin”实现

我看到很多网站可以select使用Facebook (airbnb,about.me等)login。 我想要使​​用Facebook帐户实现自动login到这些网站(以后者)。 这是about.me的代码: var casper = require('casper').create(); var fbUsername = casper.cli.args[0] var fbPassword = casper.cli.args[1] // login to facebook casper.start('https://www.facebook.com/login.php?', function() { this.fill('form#login_form', { 'email': fbUsername, 'pass': fbPassword, },true) }); casper.thenOpen("https://about.me/login",function() { this.waitForSelector('#facebook_login',function() { this.click('#facebook_login') }) }); casper.thenOpen("https://about.me/account/#!/myinformation",function() { this.debugHTML() }) casper.run(); 我看到我login到Facebook,但是对于我尝试过的每个网站,我都无法login,因为“facebooklogin”上的新闻没有正常工作(每次都是)。 任何人都可以帮助我了解问题在哪里,我该如何解决?

Angularjs + nodejs +护照跨域请求

我正在使用护照与Facebook战略进行身份validation。 问题不在于nodejs的后端,因为我已经testing了没有angularjs,一切正常,但每当angularjs进场,我会得到CORS错误。 Access-Control-Allow-Origin标题出现在请求的资源上。 起源host:8000因此不被允许访问。 我已经尝试了通过谷歌发现的大部分解决scheme,但到目前为止还没有真正起作用。 有没有人有一个想法可能是错的? 就我所知,这是通常对这类问题最常见的答案。 site.config(function($httpProvider) { $httpProvider.defaults.useXDomain = true; delete $httpProvider.defaults.headers.common['X-Requested-With']; }); 就像我说的,这不是nodejs错误。

Facebook OauthException代码2

我试图查询页面数据,并使用graphicsapi发布数据。 突然间,我得到OauthException错误代码2.我正在使用fbGraph模块nodejs。 有谁知道什么是错的? 这是我的代码: var fbGraph = require('fbgraph'); var params = { access_token: userToken, limit: 500, since: moment(startDate).format(constants.DATE_FORMAT), until: moment(startDate).clone().add('months', 1).format(constants.DATE_FORMAT), fields: 'id,message,description,call_to_action,shares,likes,comments.limit(1000000).fields(id),application.fields(name)' }; var url = '/' + facebookPageId + '/posts'; fbGraph.get(url, params, callback);