我Koala在Ruby on Rails应用程序上使用gem
我在通过Koala使用的数据模型上有以下代码:
@graph = Koala::Facebook::GraphAPI.new(token_secret)
friends = @graph.get_connections("me", "friends")
Run Code Online (Sandbox Code Playgroud)
其中,token_secret来自于我的一个字段users的表,保存在登录.
它工作正常但几分钟后我得到:
Koala::Facebook::APIError (OAuthException: Error validating access token: Session has expired at unix time 1327438800. The current unix time is 1327442037.):
Run Code Online (Sandbox Code Playgroud)
我找到了在前面用这些方法更新这个令牌的方法,Facebook JS SDK但是这个方法我在控制器上调用了朋友列表.
如何更新token_secret使用考拉?这可能吗?
我收到一个错误:
OmniAuth::Strategies::Facebook::NoAuthorizationCodeError (must pass either a
`code` parameter or a signed request (via `signed_request` parameter or a
`fbsr_XXX` cookie)):
Run Code Online (Sandbox Code Playgroud)
它不是一直都会来的.它会偶尔出现,由airbrake通知.
谷歌搜索有很多链接,但无法找到合适的解决方案..任何人?omizersuth.rb在initializers目录下:
OmniAuth.config.logger = Rails.logger
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET'], {:client_options => {:ssl => {:ca_path => "/etc/ssl/certs"}}, :scope => 'user_about_me,email,publish_actions,user_location,publish_stream,offline_access,user_interests,user_likes,user_hometown', :display => 'popup'}
OmniAuth.config.on_failure = Proc.new do |env|
#this will invoke the omniauth_failure action in SessionsController.
"SessionsController".constantize.action(:omniauth_failure).call(env)
end
end
Run Code Online (Sandbox Code Playgroud)
PS:我正在使用facebook javascript sdk和facebook-omniauth
我想调查facebook登录如何将数据传输到主页面(mypage) - 尽管跨域限制.
所以我用FB js sdk代码创建了一个新页面:
FB.login(function (response)
{
if (response.authResponse)
{...
Run Code Online (Sandbox Code Playgroud)
它确实打开了弹出窗口:

但是当我调查我的页面上是否有任何Iframe 时(我的代码不包含任何iframe):
我看到了这个 :
>>$("iframe")
Run Code Online (Sandbox Code Playgroud)
结果:
[
<iframe name=?"fb_xdm_frame_http" frameborder=?"0" allowtransparency=?"true" scrolling=?"no" id=?"fb_xdm_frame_http" aria-hidden=?"true" title=?"Facebook Cross Domain Communication Frame" tab-index=?"-1" src=?"http:?/?/?static.ak.facebook.com/?connect/?xd_arbiter.php?version=24#channe…l_path=%2FWebSite2%2FHTMLPage3.htm%3Ffb_xd_fragment%23xd_sig%3Df5252874%26" style=?"border:? none;?">?…?</iframe>?
,
<iframe name=?"fb_xdm_frame_https" frameborder=?"0" allowtransparency=?"true" scrolling=?"no" id=?"fb_xdm_frame_https" aria-hidden=?"true" title=?"Facebook Cross Domain Communication Frame" tab-index=?"-1" src=?"https:?/?/?s-static.ak.facebook.com/?connect/?xd_arbiter.php?version=24#cha…l_path=%2FWebSite2%2FHTMLPage3.htm%3Ffb_xd_fragment%23xd_sig%3Df5252874%26" style=?"border:? none;?">?…?</iframe>?
]
Run Code Online (Sandbox Code Playgroud)
我读到它们用于跨域.
但问题是为什么他们在MY PAGE上 ?
他们应该在Facebook内部页面的某个地方!
我这么说是因为我知道iframe技术的工作原理如下:

如您所见 - 内部Iframe 使用查询字符串中的值创建另一个 iframe SRC(该值实际上是首页url),然后,在两个页面上使用JS + URL => JS …
目前,如果我有一个Facebook朋友,我已经在我上传的图片中添加了标签,当我上传他脸上的图片时,脸谱会自动将他的用户建议为标签.
是否可以通过facebook graph api或SDK模拟这种相同的行为?
换句话说,如果我使用https://developers.facebook.com/docs/graph-api/reference/user/photos/上描述的api 来上传我的用户的照片(在"创建"下描述)帐户是朋友,是否有任何方式Facebook将在请求返回参数或类似的东西中提出相同的建议?
api facebook facebook-graph-api facebook-javascript-sdk facebook-php-sdk
我正在尝试允许用户使用javascript SDK通过facebook登录登录我的webapp.它适用于桌面(safari和chrome),但iOS上的safari和chrome上弹出失败.
该错误直接针对不支持浏览器和操作系统的chrome.这个问题一直围绕描述的工作在这里.目前尚不清楚safari的问题是什么,也没有看到弹出窗口.点击按钮时会调用登录调用,所以我不相信浏览器会阻止它.我也试过允许这里建议的弹出窗口,但该解决方案不起作用,也不是强制用户更改该设置的可行的长期解决方案.
人们如何在生产中使用facebook登录并期望它在移动设备上运行?你需要使用手动 fb登录吗?似乎javascript SDK不适用于移动浏览器和操作系统.
我们有一个利用facebook javascript sdk和登录功能的应用程序.
我们一直注意到生产日志中出现了这个错误.特别适用于版本为10.3及更高版本的iOS设备.似乎也只是针对safari浏览器
SecurityError(DOM Exception 18):阻止具有源" https://www.mymadeupsite.com "的帧访问具有源" https://staticxx.facebook.com " 的帧.被访问的帧将"document.domain"设置为"facebook.com",但请求访问的帧没有.两者都必须将"document.domain"设置为相同的值才能允许访问.
这是我们的init函数:
init: function(options) {
var facebookUrl, scriptInclude;
Facebook.baseHost = options.baseHost;
if (typeof FB !== "undefined" && FB !== null) {
return Facebook.setup();
} else {
if (options.appId == null) {
throw 'Facebook: cannot init without appId';
}
window.fbAsyncInit = function() {
FB.init({
appId: options.appId,
version : 'v2.3',
channelUrl: options.channelUrl || ("" + document.location.protocol + "//" + document.location.host + "/channel.html"),
status: true,
cookie: false,
xfbml: false,
oauth: true
}); …Run Code Online (Sandbox Code Playgroud) javascript facebook cross-domain ios facebook-javascript-sdk
EDIT: LAST UPDATE:
所以,我们已经测试了一些.我用过facebook开发者'lintner' http://developers.facebook.com/tools/lint/.在我的任何一个页面上都没有发现任何错误.在lint-page上的like按钮工作正常.如果我切换回自己的网站,我可以清楚地看到我的喜欢被计算在内.
奇怪的是..如果我在自己的页面上删除了类似的东西,并且神奇地能够从我自己的网站添加类似的东西.
我刚刚改变的最后一件事是将我的doctype改为STRICT // EN,因为这是我发现的与使用类似按钮和我的某些页面不同的唯一部分...
我一直在搜索这个bug一段时间,但我似乎无法找到问题所在.我用过很多页面来获取我需要的信息:
(除了这些关于类似问题的stackoverflow上的这些帖子之外)
但毕竟阅读后我仍然不确定会出错.在大多数页面上,like按钮工作正常(对我而言,至少,不确定如果有人添加了喜欢的内容,因为我还没有发现'2').
这些是具有类似按钮的当前页面:
在我的情况下,当我按下按钮时,最后一个按钮(nr 6 + 7)增加了一个,但是在我这样做之后它也会自动删除.一秒钟后会弹出一个注释框,但是在一瞬间它会逐渐消失,然后计数器会跳回到0.当我从链接1-5中删除其中一个时,会将其删除,我可以添加它没有它被删除.
对于我所读到的内容,我必须使用Facebook Javascript SDK才能使用<fb:like>标记,我已经完成了.起初我使用了一个应用程序ID,但经过一些阅读后很明显,类似按钮不需要app-id.
然后我发现了所需的元数据标签.这些是我在页面上放置的内容:
<?php if($curPicTitle != false) { ?>
<meta property="og:site_name" content="<?=URL;?>"/>
<meta property="og:type" content="article" />
<meta property="og:title" content="Fotoactie.nl: <?=$curPicTitle;?>"/>
<meta property="og:url" content="<?=URL;?>pic.php?id=<?=$pic;?>" />
<meta property="og:image" content="<?=URL;?>/photos/1/med_<?=$curPicUrl;?>"/>
<?php } ?>
Run Code Online (Sandbox Code Playgroud)
请注意PHP,只有在有效图像时才会包含它,并且标题,网址和图像对于每个页面标题图像组合都是100%唯一确定的.
然后使用PHP生成like按钮:
echo '<fb:like send="false" href="'. URL . '/pic.php?id=' . $pic . '" layout="button_count" …Run Code Online (Sandbox Code Playgroud) 我是新来AnuglarJS并已经建立了一个小型web应用程序有了它,我想使用Facebook的JavaScript SDK它,但使用的最佳实践(依赖注入到控制器,以保持应用程序的结构和可测性).
我找到了这个https://groups.google.com/forum/#!msg/angular/bAVx58yJyLE/Kz56Rw-cQREJ, 但对于这个框架的新手(模块,服务和工厂没有很好地解释恕我直言),这非常令人困惑.
那么,在AngularJS应用程序中使用Facebook SDK的正确方法是什么?
我想显示知道何时点击了facebook like按钮,点击验证按钮后,我想将这样的内容发布到粉丝页面.我想使用Facebook C#SDK.这是我的代码:
HTML
<html>
<head>
<title>Your Website Title</title>
<!-- You can use open graph tags to customize link previews.
Learn more: https://developers.facebook.com/docs/sharing/webmasters -->
<meta property="og:url" content="https://www.your-domain.com/your-page.html" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Your Website Title" />
<meta property="og:description" content="Your description" />
<meta property="og:image" content="https://www.your-domain.com/path/image.jpg" />
</head>
<body>
<button id="btnVerify">Verify</button>
<!-- Load Facebook SDK for JavaScript -->
<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 = …Run Code Online (Sandbox Code Playgroud) c# facebook facebook-like facebook-javascript-sdk facebook-c#-sdk
当我使用Facebook的JS SDK来验证我的应用程序(使用FB.init方法)时,我需要的只是我的App ID.它不需要我的应用程序密钥和/或应用程序密钥.然而,当我使用PHP SDK时,它需要我的应用程序秘密(至少我以前学习的例子使用了app ID和app secret).
是否安全并建议使用JS SDK进行身份验证?JS SDK的身份验证流程是如何实现的?
谢谢,Vineet
javascript facebook facebook-graph-api facebook-javascript-sdk
facebook ×8
javascript ×5
cross-domain ×2
angularjs ×1
api ×1
c# ×1
ios ×1
koala ×1
omniauth ×1