2010-12-15 90 views
7

Dans mon application Android, je souhaite que les utilisateurs partagent mon application dans leur mur. Je souhaite qu'ils affichent un statut de contenu prédéfini sur leur mur.Ajout de contenu au dialogue de flux Facebook à partir de Facebook SDK pour Android

Comment personnaliser l'état du mur? (Je veux ajouter l'icône de mon application et du texte de flare).

+0

Cela peut également être fait sans Facebook SDK, via l'URL de partage. Vous voulez vraiment le SDK? –

+0

Je veux la manière la plus simple possible. :) – oriharel

+0

Ok, avec l'URL de partage est le moyen le plus facile, voir l'exemple ci-dessous. –

Répondre

2

Vous pouvez aussi le faire sans le SDK, juste via Partager URL:

public void shareOnFacebook(View v) { 

    Uri uri = Uri.parse("http://m.facebook.com/sharer.php?u=http://yourdomain/page.html&t=YourMessage"); 
    Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
    startActivity(intent); 
} 

Vous avez juste besoin de mettre une page de contenu/html quelque part sur votre serveur, sous l'URL de votre fournie au partageur.

Si vous voulez qu'une certaine image apparaît dans le message partagé, mettez cela dans la balise meta de la page html sur le serveur que vous partagez:

<link rel="image_src" type="image/jpeg" href="http://yourdomain.com/promo/image.png" /> 

Voir un échantillon de cette page promo avec l'image liée: http://www.modelme.co.uk/promo/amandaharrington

+0

Que faire si je n'ai pas de serveur? juste une application native simple? – oriharel

+2

Ensuite, cette approche ne fonctionne pas. Mais vous pouvez le mettre n'importe où, n'importe quel espace d'hébergement gratuit (c'est-à-dire http://sites.google.com/), à condition qu'il soit disponible publiquement via un navigateur. –

5

Téléchargez le SDK Facebook et importez-le dans votre projet. Ensuite, utilisez le code suivant pour Autorisez:

public void sendtoFacebook(){ 
     facebookClient = new Facebook("<Your_APP_ID"); 
     facebookClient.authorize(<Current_class>.this, new AuthorizeListener()); 
    } 

Maintenant, vous devez ajouter les Methodes suivantes:

class AuthorizeListener implements DialogListener { 
    public void onComplete(Bundle values) { 
     Bundle parameters = new Bundle(); 
      parameters.putString("message", "<Message_you_want_to_send>");// the message to post to the wall 
      facebookClient.dialog(<Current_class>.this, "stream.publish", parameters, this);// "stream.publish" is an API call 
    } 
    @Override 
    public void onFacebookError(FacebookError e) { 
    } 
    @Override 
    public void onError(DialogError e) { 
    } 
    @Override 
    public void onCancel() { 
    } 
} 

Votre nom d'application et l'icône sera automatiquement ajouté :)

+0

Merci, mais ce n'est pas exactement ce que je veux. celui-ci met du texte dans la zone de texte. Je souhaite donner à l'utilisateur l'opportunité d'ajouter du texte au contenu prédéfini. Lorsque vous partagez une vidéo à partir de YouTube, une boîte de dialogue s'ouvre, une zone de texte vide vous permet d'ajouter un statut et un contenu YouTube (dans cet exemple, une vidéo et un texte intégrés). C'est l'expérience que je veux que mes utilisateurs aient. – oriharel

+0

Le code que j'ai posté est juste un simple message sur un mur. Si vous regardez à travers le SDK à https://github.com/facebook/facebook-android-sdk, vous verrez qu'il y a beaucoup plus d'options, y compris celles que vous voulez. – Galip

+0

En fait, la documentation de cette page est assez minime (c'est-à-dire qu'il n'y a pas de liste de paramètres facultatifs à ajouter à l'ensemble). Je suppose que Facebook API (la norme, pas Android) est supposé. – oriharel

3

Après avoir appris le Facebook API, je suis tombé sur ce page

alors maintenant je connais toutes les options pour les paramètres de l'ensemble. Merci à tous pour votre aide!

2

Voilà comment je fais un paquet de définir le contenu via une boîte de dialogue facebook en utilisant le SDK Facebook

Bundle parameters = new Bundle(); 
     parameters.putString("app_id", "xxxxxxx"); 
     parameters.putString("link", "https://play.google.com/store/apps/details?id=myappistasty"); 
     parameters.putString("name", "This is the name of the link set in app."); 
     parameters.putString("caption", "This is Text that is specified in bt the aoo"); 
     parameters.putString("picture", "www.urltoimage.com); 
facebook.dialog(MainActivity.this, "feed", parameters, new DialogListener() { 
etc... 

http://developers.facebook.com/docs/reference/dialogs/feed/ c'est le lien qui m'a expliqué tout, bien qu'aucun d'entre elle est en java la La table vous donne une bonne idée.