2009-09-24 10 views
1

Pour ma fonction d'invitation de mon application Facebook Connect, je dois être en mesure de dire à quelle invitation un utilisateur répond. J'ai décidé de me fier à l'UID de Facebook pour cela. Comment puis-je inclure cet identifiant dans l'URL que Facebook génère pour fb: req-choice?Interpolation de variable dans fb: req-choice url

<fb:request-form action="#{@post_url}" 
       method="POST" 
       invite="true" 
       type="my_app" 
       content="<fb:name uid='#{current_user.facebook_uid}' useyou='false' /> wants to invite you to to my_app. To join him simple click 'Accept' below.<fb:req-choice url='http://my_app.com/invitation/?fb_uid={uid}' label='Accept' />"> 
    <fb:multi-friend-selector 
       showborder="false" 
       actiontext="Invite your Facebook Friends to shop on Yumshare" /> 
</fb:request-form> 

Notez le {uid} dans l'attribut url pour fb: req-choice. Ceci est censé être l'uid de l'utilisateur qui est invité et doit donc être rempli sur le côté Facebook. Est-ce possible?

Répondre

1

La solution que j'ai utilisée n'est pas totalement équivalente à ce qui précède, mais assez proche. Lorsque vous chargez la page contenant le formulaire fb: req-choice, générez un jeton unique, qui doit bien sûr être conservé à ce moment-là, et insérez-le dans l'URL d'acceptation. Comme si:

<fb:request-form action="#{@post_url}" 
       method="POST" 
       invite="true" 
       type="my_app" 
       content="<fb:name uid='#{current_user.facebook_uid}' useyou='false' /> wants to invite you to to my_app. To join him simple click 'Accept' below.<fb:req-choice url='http://my_app.com/invitation/?token=#{@token}' label='Accept' />"> 
    <fb:multi-friend-selector 
       showborder="false" 
       actiontext="Invite your Facebook Friends to shop on Yumshare" /> 
</fb:request-form> 

De cette façon, vous pouvez suivre l'invitation, mais seulement dans le lot d'amis que l'utilisateur invité dans cette action.

+1

Les variables GET ne sont-elles pas supprimées lors d'une action POST? Je me rappelle vaguement que j'ai dû diviser un enregistrement en deux étapes, à cause de cela. – mdm

+0

Ouais, c'est ce qui m'arrive, je pense –