L'affichage de l'image .NET pour Facebook mur à l'aide de l'API Graphique
Je suis en utilisant le Facebook de l'API Javascript pour développer une application qui devra être en mesure de poster une image d'un des utilisateurs de la paroi.
La partie de l'application doit être de serveur-côté aussi loin que je peux dire, depuis qu'il a besoin de publier les données de l'image comme "multipart/form-data".
Remarque: Ce n'est pas la version simple, à l'aide de "post", mais les vraies "photos" de la méthode.
http://graph.facebook.com/me/photos
Je pense que je suis confronté à deux problèmes, une .NET et Facebook problème:
Facebook problème: je ne suis pas tout à fait sûr si tous les paramètres doivent être envoyer en tant que " multipart/form-data (y compris l'access_token et message). Le seul exemple de code n'utilise la boucle util/de l'application.
.NET problème: je n'ai jamais émis multipart/form-data demandes de .NET , et je ne suis pas sûr que si .NET crée automatiquement le mime-pièces, ou si je dois encoder les paramètres d'une certaine manière.
C'est un peu difficile à déboguer, puisque la seule réponse d'erreur que je reçois de l'API Graphique est "de 400 bad request".
Ci-dessous est le code tel qu'il regardait quand j'ai décidé d'écrire cette question (oui, c'est un peu verbeux 🙂
La réponse ultime serait, bien entendu, un échantillon extrait de l'affichage d'une image à partir .NET, mais je peux me contenter de moins.
string username = null;
string password = null;
int timeout = 5000;
string requestCharset = "UTF-8";
string responseCharset = "UTF-8";
string parameters = "";
string responseContent = "";
string finishedUrl = "https://graph.facebook.com/me/photos";
parameters = "access_token=" + facebookAccessToken + "&message=This+is+an+image";
HttpWebRequest request = null;
request = (HttpWebRequest)WebRequest.Create(finishedUrl);
request.Method = "POST";
request.KeepAlive = false;
//application/x-www-form-urlencoded | multipart/form-data
request.ContentType = "multipart/form-data";
request.Timeout = timeout;
request.AllowAutoRedirect = false;
if (username != null && username != "" && password != null && password != "")
{
request.PreAuthenticate = true;
request.Credentials = new NetworkCredential(username, password).GetCredential(new Uri(finishedUrl), "Basic");
}
//write parameters to request body
Stream requestBodyStream = request.GetRequestStream();
Encoding requestParameterEncoding = Encoding.GetEncoding(requestCharset);
byte[] parametersForBody = requestParameterEncoding.GetBytes(parameters);
requestBodyStream.Write(parametersForBody, 0, parametersForBody.Length);
/*
This wont work
byte[] startParm = requestParameterEncoding.GetBytes("&source=");
requestBodyStream.Write(startParm, 0, startParm.Length);
byte[] fileBytes = File.ReadAllBytes(Server.MapPath("images/sample.jpg"));
requestBodyStream.Write( fileBytes, 0, fileBytes.Length );
*/
requestBodyStream.Close();
HttpWebResponse response = null;
Stream receiveStream = null;
StreamReader readStream = null;
Encoding responseEncoding = System.Text.Encoding.GetEncoding(responseCharset);
try
{
response = (HttpWebResponse) request.GetResponse();
receiveStream = response.GetResponseStream();
readStream = new StreamReader( receiveStream, responseEncoding );
responseContent = readStream.ReadToEnd();
}
finally
{
if (receiveStream != null)
{
receiveStream.Close();
}
if (readStream != null)
{
readStream.Close();
}
if (response != null)
{
response.Close();
}
}
OriginalL'auteur Torben Warberg Rohde | 2011-02-04
Vous devez vous connecter pour publier un commentaire.
Voici un exemple de la façon de télécharger des données binaires. Mais le téléchargement de /me/des photos de ne pas publier l'image dans le mur 🙁 La sauvegarde de l'image dans votre application de l'album. Je suis coincé sur la façon de l'annoncer dans l'alimentation. Une autre façon est de poster une image dans le "Mur de l'Album", URL=="graph.facebook.com/%wall-album-id%/photos". Mais n'ai pas trouvé un moyen de créer sucha album (utilisateur crée lors de l'upload d'une image via le site).
Faites de votre application affiche une image au mur ou tout simplement les télécharger en application de l'album? Dans mes tests, il n'y avait pas la vue de l'image téléchargée sur le mur/feed.
Je n'ai pas fait encore. Jusqu'à présent, je ne vois que ça sur le mur quand l'album par défaut pour la création de l'application. Mais, selon ce post il devrait être possible.
Je réponds ici à la question "comment publier une photo sur son propre timeline". Voir chaque fois que certaines photos sont publiées à la chronologie, Il suit 2 étapes 1. Ajout d'une photo à l'album "Timeline_Photos" 2. La publication d'un nouveau poste(alimentation) avec photo(ci-dessus) id, de sorte qu'il peut être affiché sous la forme d'une vignette. Tout en travaillant avec l'API Graphique, nous avons aussi à suivre les mêmes étapes 1. POSTES /version/me/photos <Fournir ici la légende et l'URl/Source> 2. POSTES /version/me/feed <Fournisseur ici Object_Attachment qui sera d'identité avec photo reçue dans l'étape ci-dessus>
OriginalL'auteur fltz
Nettoyé méthode de la classe à l'aide de @fitz code. Passer dans un tableau d'octets ou un chemin d'accès au fichier de l'image. Passer dans un album id si le téléchargement d'un album existant.
OriginalL'auteur jgc
Vous avez à construire le multipart/form-data-vous à l'aide de tableaux d'octets.
De toute façon je l'ai déjà fait cela. Vous pouvez consulter le Facebook Graph Trousse à http://computerbeacon.net/ . Je vais mettre à jour la trousse à outils pour la version 0.8, dans quelques jours, ce qui comprendra ce "post photo pour facebook mur" de la fonction ainsi que d'autres nouvelles fonctionnalités et mises à jour.
Ce site ne peut pas être atteint
OriginalL'auteur kevin
J'ai été en mesure de publier les images à l'aide de RestSharp:
L'utilisateur de l'API ou La Page de l'API pour la publication de photos
Comment faire pour convertir l'Image au Tableau d'Octets
Note: j'ai été en passant une chaîne vide comme le type mime et facebook a été assez intelligent pour le comprendre.
OriginalL'auteur Gaʀʀʏ
Peut-être utile
De référence:
En Faisant Des Demandes
OriginalL'auteur Kiquenet