3
#!/opt/ruby_ee/bin
    require 'rubygems'
    require 'twitter'
    require 'net/http'
    require 'uri'
    require 'httparty'
    module FbTweet

        def FbTweet.tweet(url)
            bitly_url = Bitly.shorten(url)
            httpauth = Twitter::HTTPAuth.new('username', 'password')
            base = Twitter::Base.new(httpauth)
            base.update("Testing to port this into rails plugin #{bitly_url}")
            base.friends_timeline.each { |tweet| puts tweet.text }
        end

        class Bitly
            include HTTParty
            base_uri 'api.bit.ly'
            basic_auth 'millisami', 'R_sadfdsfwefsdf2323fafasd'
            format :json
            def self.shorten(url)
                response = get('/shorten', :query => required_params.merge(:longUrl => url))
                response['results'][url]['shortUrl']
            end
            def self.required_params
                {:version => "2.0.1"}
            end
        end

    end
    puts "Calling twitter to test.."
    puts FbTweet.tweet("http://google.com")
4

1 回答 1

2

只需创建一个插件骨架

./script/generate 插件 FbTweet

然后在 RAILS_ROOT/vendor/plugins/fb_tweet/lib/fb_tweet.rb 文件中放入您的代码内容:

  require 'rubygems'
    require 'twitter'
    require 'net/http'
    require 'uri'
    require 'httparty'
    module FbTweet

            def FbTweet.tweet(url)
                    bitly_url = Bitly.shorten(url)
                    httpauth = Twitter::HTTPAuth.new('newnepal', 'wnn_tweet_pwd')
                    base = Twitter::Base.new(httpauth)
                    base.update("Testing to port this into rails plugin #{bitly_url}")
                    base.friends_timeline.each { |tweet| puts tweet.text }
            end

            class Bitly
                    include HTTParty
                    base_uri 'api.bit.ly'
                    basic_auth 'millisami', 'R_fca41718b34e48a06daf0260c5919cf0'
                    format :json
                    def self.shorten(url)
                            response = get('/shorten', :query => required_params.merge(:longUrl => url))
                            response['results'][url]['shortUrl']
                    end
                    def self.required_params
                            {:version => "2.0.1"}
                    end
            end

    end

现在,打开您的控制台并简单地输入:

FbTweet.tweet("www.example.com")

于 2009-08-09T13:22:14.960 回答