2011-12-08 6 views
0

私のアプリケーションでは、ユーザーは自分のアプリケーションに拡張アクセス許可を与えてアクセストークンを取得し、それを長期間アクセストークンとして保存します。ユーザーがオフラインのときにユーザーの友だちの壁に投稿する方法

このユーザーには、友だちのリストが表示され、ユーザーが選択します。

自分の名前とfbuidをデータベースに保存します。

今、将来、この友人の壁にメッセージを送信したいと思います。 これは可能ですか? 初期ユーザーがオフラインのときにFacebookの友だちにリンクを送信するための他のオプションはありませんか?

*更新 私は次のように長く住んでいたアクセストークンとオフラインアクセスを、これを行うことができました:

access_token = "AAACvmqy1nYoBAAZCk*************dZAMjsLxKxR7DaZBE0NxY8ZBGBW1q2mzsB9TDT0RvgeQcDdnyFJNAYRf0icnhlbikZD" 
    appID  = '19307***********' 
    message  = "Happy Birthday from your friends." 
    name   = "Click here for your Birthday Surprise" 
    redirect_uri = URI.parse('http://localhost:3000/facebook/') 
    link   = "https://www.facebook.com/dialog/oauth?client_id=#{appID}&redirect_uri=#{redirect_uri}" 
    caption  = "Your friends have created a surprise for you. Click the link to see what it is." 
    picture  = 'http://www.birthdaywall.net/logo-mail.png' 
    userID  = '100002*********' 
    uri = URI.parse("https://graph.facebook.com/#{userID}/feed") 
    req = Net::HTTP::Post.new(uri.path) 
    result = req.set_form_data({:access_token => access_token , :message => message, :app_id => appID, :name => name, :link => link, :caption => caption, :picture => picture, }) 
    sock = Net::HTTP.new(uri.host, 443) 
    sock.use_ssl = true 
    sock.start do |http| 
     response = http.request(req) 
    end 

これが最善の方法である場合、私は知りませんが、それは私の作品私はそれを使用しています。もし誰かがより良い方法を持っていれば、私はそれについて知っていてとても幸せです。

答えて

0

すでにpublish_stream権限があると思います。 offline_accessアクセストークンを長くライブアクセスするための拡張アクセス許可が必要です:

いつでもユーザーに代わって承認されたリクエストを実行できるようにします。デフォルトでは、ほとんどのアクセストークンは、アプリケーションがアクティブに使用されているときにアプリケーションがユーザーのために要求するように、短期間で有効期限が切れます。このアクセス許可により、OAuthエンドポイントによって返されたアクセストークンが長期間使用されます。

はこちらをご覧ください:https://developers.facebook.com/docs/reference/api/permissions/

+0

をドキュメントによると、「publish_stream =>は、コンテンツを投稿するにアプリを有効にし、コメント、およびユーザーのストリームにしてするのが好きので、私は、私はoffline_accessを持っている必要はないと思いますこのアクセス許可を使用すると、オフラインアクセスを必要とせずにいつでもユーザーのフィードにコンテンツを公開することができますが、Facebookはユーザー主導の共有モデルを推奨しています。しかし、私はまだ公開するためにトークンを使用する必要があることを意味するかどうかわからない – chell

+0

あなたは正しいと言います。だから既にそれを実装しようとしましたか?たぶんアクセストークンを保存する必要があるかもしれません。 – borisdiakur

+0

私は公開することができました。上記の編集で示したように私はそれをしました。しかし、正しい方向へのプッシュをありがとう。 – chell

関連する問題