2

次のようなアプリケーションを作成したいと考えています。

  • 電子メール メッセージの受信と送信 (RoR を使用して ActionMailer で実行できることはわかっています)
  • Google+ の友達とチャットする
  • GoogleTalk (gmail) のステータスを変更する

そのため、Gmail インターフェイスを開くと、ページの左側に連絡先のリストが表示されます。このリストの人とチャットを開くことができます。ステータスと名前を変更できます (私の小さな Google+ アバターの近く)。

ステータスや名前を書くと、この写真に「ボグダン」という特別なメッセージが表示されます

Google トークのステータス (特別なメッセージ) を変更するための Google API はありますか? いくつかの RubyOnRails gem を使用して実行できますか? ありがとう。

4

2 に答える 2

2

つまり、このきれいな ruby​​ コード ( xmpp4r gem を使用) は、google_talk のステータスを変更し、chat_message を友達に送信します。ありがとう、@アーカン!

require 'xmpp4r'

# init jabber client
client_jid = Jabber::JID.new( 'your_email@gmail.com' )
client     = Jabber::Client.new( client_jid )
client.connect 'talk.google.com'
client.auth 'your_gmail_password'

# change google_talk status
client.send( Jabber::Presence.new.set_show( :chat ).set_status( 'Your New GoogleTalk status' ) )

# send chat_message to friend
friend  = Jabber::JID.new("your_friend_email@gmail.com")    
message = Jabber::Message::new(friend, "it's chat message").set_type(:normal).set_id('1')
client.send(message)

ルビー大好きです^_^!

于 2013-06-24T11:50:41.463 に答える
0

Gtalk の Xmpp 実装。ステータスを変更するには これが役立つ場合があります。


xmpp をインポート

インポート DNS

クラス Gtalk():

def __init__(self,bot_id,bot_pwd): 
    self.bot_id = bot_id
    self.bot_pwd = bot_pwd
def connect(self):                           
    self.jid = xmpp.protocol.JID(self.bot_id)
    self.presnc = xmpp.protocol.Presence()
    self.conn = xmpp.Client(self.jid.getDomain(),debug=[])
    if self.conn.connect():
        print 'connected..'
        self.auth()
    else:
        print 'err to connect'
def auth(self): 
    if self.conn.auth(self.jid.getNode(),self.bot_pwd):
        self.conn.sendInitPresence()
        print 'Authenticated..'
    else:
        print 'err to authenticate'
def setStatus(self,value):
    self.conn.send(xmpp.protocol.Presence(status=value))
def invisible(self,username):
    self.conn.send(xmpp.protocol.Presence(username,typ='unavailable'))
def visible(slef,username):
    self.conn.send(xmpp.protocol.Presence(username,typ=None))
def disconnect(self):
    self.conn.disconnect()
于 2013-06-24T08:04:49.603 に答える