2012-06-19 87 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

相關問題