我在一个通过API调用与Facebook交互的应用程序中使用Koala.我想记录Koala生成的原始HTTP请求以及Facebook在数据库中发回的响应.我怎样才能抓住这些字符串以便保存它们?
我们的RoR应用程序存在问题.我们正在使用omniauth的facebook身份验证,并使用Koala搜索用户朋友.但是最近,当我们尝试显示朋友照片时,我们收到了此错误:
Koala::Facebook::APIError in Homes#show
Showing /home/daniel/Homes/app/views/shared/_event.html.erb where line #19 raised:
OAuthException: Error validating access token: Session has expired at unix time 1328727600. The current unix time is 1328802133.
Extracted source (around line #19):
16: <img src="../assets/friends-icon.png" alt="User profile apicture" height="33" width="43">
17: <% if current_user %>
18: <% event.friends_in_event(@person).each do |f| %>
19: <%= link_to(image_tag(f.fb_picture, :size => "43x33"), person_path(f.id)) %>
20: <% end %>
21: <% end %>
22: </div>
Run Code Online (Sandbox Code Playgroud)
身份验证工作正常,但Facebook已经弃用了offline_access选项,这项工作正常,但现在,我们遇到了这个问题.是扩展access_token?的任何方式,还是有另一种解决方案?
这是我们的omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, ENV['FB_KEY'], ENV['FB_SECRET'],
{ …Run Code Online (Sandbox Code Playgroud) 我想在Facebook墙上贴一个自己的HTML5(带闪存备份)播放器.我正在使用铁轨和红宝石考拉.我已经看到了这个:https://developers.facebook.com/docs/share/可以添加的元标记,但它可以是我的网页链接,也可以是要加载的视频文件.
感谢是否有人可以帮助我:)
我正在使用Rails 3.2.5和Koala 1.3.0(不是最新的,因为最新的拒绝运行来自Heroku的样本Facebook应用程序).Web服务器是Unicorn.
当我尝试使用put_connections()POST到时间轴时:
@fbgraph = Koala::Facebook::API.new(session[:access_token])
logger.debug "put_connections(#{url_for @room}), start"
@fbgraph.put_connections("me", "myapp:view", :room => url_for(@room))
logger.debug "put_connections(), end"
Run Code Online (Sandbox Code Playgroud)
在获得异常之前,控制器会停顿12秒:
Completed 500 Internal Server Error in 12075ms
Koala::Facebook::APIError (HTTP 500: Response body: {"error":{"type":"Exception","message":"Could not retrieve data from URL.","code":1660002}}):
Run Code Online (Sandbox Code Playgroud)
我使用调试工具进行了测试:http://developers.facebook.com/tools/debug ,它发现第2行中记录的URL没有错误.
我的Web服务器从Facebook IP记录GET并返回200 OK.然后,Facebook IP会提出更多请求以获取图像,这也是200 OK.
我正在我的应用程序的测试用户FYI上测试这个.
UPDATE
这似乎是一个OpenGraph问题.这个问题为我重现:https://developers.facebook.com/bugs/213733412077729
基本上只有在我在调试器上测试一次后,POST才会成功!以前有人经历过吗?
我上周问过这个问题,但只有8个观点.
我正在处理的应用程序的一部分需要创建大量的用户到用户请求并验证它们是否在应用程序中正确处理.这需要无数小时的QA工作,并且可以使用简单的脚本自动化
users_api = Koala::Facebook::TestUsers.new(config)
users = test_users.create_network(10, true, "email,user_likes,publish_actions")
users.permutations(2) do |u1, u2|
graph = Koala::Facebook::API.new(u1['access_token'])
requests_types.each do |req|
graph # .user_to_user_request(u2, req) Oh noes I can't do this part
end
end
Run Code Online (Sandbox Code Playgroud)
我所看到的一切都表明,即使对于测试用户,也无法在脚本中创建用户到用户的请求.有没有其他(自动)方式来做到这一点?
我想要找到的是一种创建用户到用户请求的方法.质量保证团队仍然需要手动验证.我们面临的问题是他们需要创建90个请求并确保它们不会跳过一个请求,然后验证数据.
我按照以下博文来弄清楚如何使用我的应用程序远程创建Facebook事件.我一直在从我的应用程序加载图像时遇到问题,但是,因为我的应用程序没有本地存储的图像,所以它们存储在AWS中.
Run Code Online (Sandbox Code Playgroud)@graph = Koala::Facebook::GraphAPI.new(@token) picture = Koala::UploadableIO.new(@event.photo.url(:small)) params = { :picture => picture, :name => 'Event name', :description => 'Event descriptio :start_time => datetime, }
是我正在使用以下代码在我的应用程序上创建Facebook事件时将图片发送到Facebook.但是,问题是Rails抛出错误:没有这样的文件或目录 - http://s3.amazonaws.com/ColumbiaEventsApp/photos/21/small.jpeg?1312521889.
对Rails开发更有经验的人是否知道我是否有办法将URL视为文件路径?UploadableIO类需要一个文件路径,而我正在努力弄清楚Ruby是否有办法将URL视为文件路径.存储在应用程序上的照片可以加载到Facebook的方式如下:
picture =考拉:: UploadableIO.new(File.open("路径到你的事件图像"))
如果这有帮助.
我很欣赏这个问题的任何新见解.
我已经开始使用考拉宝石购买RoR应用了.我已获得用户的许可,可以发布到他们的流中
这一行之后
graph = Koala::Facebook::GraphAPI.new(@facebook_cookies["access_token"])
Run Code Online (Sandbox Code Playgroud)
发布到流,我可以做一个
graph.put_object("me", "feed", "I am writing to my wall")
Run Code Online (Sandbox Code Playgroud)
上述工作,但如何在更新中包含像http://example.com/foo.jpg这样的图像?我试过阅读Stream Attachments但没有太多运气.有没有人有一些示例代码?
在我看来,我想做的是:
true或false该集合的每个项目我已成功检索当前用户的Facebook好友并将其提供给我的应用程序
UserController的
def facebook_friends
@friends = graph.get_connections("me", "friends")
end
Run Code Online (Sandbox Code Playgroud)
Rabl的
object false
node :data do @friends
end
Run Code Online (Sandbox Code Playgroud)
它返回如下内容:
{
data: [{
'id': '23456789'
'name': 'Bobby Brown'
}, {
'id': '23456788'
'name': 'Bobby Black'
}]
}
Run Code Online (Sandbox Code Playgroud)
但我想要的是这样的:
{
data: [{
'id': '23456789'
'name': 'Bobby Brown',
'registered': true
}, {
'id': '23456788'
'name': 'Bobby Black',
'registered': false
}]
}
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在不浪费太多资源的情况下完成第二部分.
我正在使用Koala for Win64编译sass(有很多部分)到css没有问题,但Koala自动编译功能只在root scss文件中有更新时运行,所以我需要打开Koala并按'compile'每当我对包含的部分进行更改时按钮.
有没有办法配置scss自动编译来监视sass partials的变化?
我想在经过身份验证后提取用户的新闻源.我正在使用考拉宝石,但如果我打电话get_connection('me', 'feed')它只返回我墙上的最后三个帖子.我想要显示在用户主页上的最后约100个帖子(或自1234567后发布).