2012-06-19 83 views
1

我试图运行一个系统调用,它将一个活动发布到Facebook上的用户。 当我在命令行上运行它时,一切正常,但在我的RoR控制器上,我没有得到任何结果。我拥有为用户发布活动所需的所有权限,并且我已经尝试使用system(),反引号(`),exec()和%x,但仍然没有运气。 对此有何想法?这里是我的代码:Ruby运行shell命令不工作(对于facebook应用程序)

post = "curl -F 'access_token=#{session[:access_token]}' -F 'achievement=https://example.com/main/fbobject' 'https://graph.facebook.com/me/app_fb:send'" 
system(post) 
+0

你可以发布'curl'命令的结果吗?(通过渲染它或某物)?另外,您是在自己的计算机上还是在服务器上运行RoR服务器?如果你在服务器上运行它,也许你没有权限在该机器上运行shell命令。 –

+0

'system'只返回true,false或nil,请尝试反引号并打印出结果。不要使用'exec'(http://rubyquicktips.com/post/5862861056/execute-shell-commands) –

回答

0

现在工作正常。对于参考,这里是解决方案。
在服务器设置下的指令, 我:

SetEnv PATH /usr/local/bin 
SetEnv LD_LIBRARY_PATH /usr/local/lib 

并补充说:

SetEnv PATH /usr/local/bin:/usr/bin/ 
SetEnv LD_LIBRARY_PATH /usr/local/lib:/usr/bin/lib 

因为curl命令就在那里我已经包括:/usr/bin/:/usr/bin/lib

相关问题