comment économiser de l'facebook photo de profil à l'aide de php Api graphique
je suis en utilisant ce curl classe pour enregistrer le fichier -->
class CurlHelper
{
/**
* Downloads a file from a url and returns the temporary file path.
* @param string $url
* @return string The file path
*/
public static function downloadFile($url, $options = array())
{
if (!is_array($options))
$options = array();
$options = array_merge(array(
'connectionTimeout' => 5, //seconds
'timeout' => 10, //seconds
'sslVerifyPeer' => false,
'followLocation' => false, //if true, limit recursive redirection by
'maxRedirs' => 1, //setting value for "maxRedirs"
), $options);
//create a temporary file (we are assuming that we can write to the system's temporary directory)
$tempFileName = tempnam(sys_get_temp_dir(), '');
$fh = fopen($tempFileName, 'w');
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_FILE, $fh);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $options['connectionTimeout']);
curl_setopt($curl, CURLOPT_TIMEOUT, $options['timeout']);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, $options['sslVerifyPeer']);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, $options['followLocation']);
curl_setopt($curl, CURLOPT_MAXREDIRS, $options['maxRedirs']);
curl_exec($curl);
curl_close($curl);
fclose($fh);
return $tempFileName;
}
}
$url = 'http://graph.facebook.com/shashankvaishnav/picture';
$sourceFilePath = CurlHelper::downloadFile($url, array(
'followLocation' => true,
'maxRedirs' => 5,
));
ce code ci-dessus va me donner l'url temporaire dans $sourceFilePath variable maintenant je veux stocker l'image dans mon dossier image. Je suis coincé ici...merci de m'aider...je vous remercie à l'avance.
$tempFileName = tempnam(sys_get_temp_dir(), "); ce code enregistrez le fichier xxxx.tmp, il censé enregistrer sous .jpg comme @senthilbp mentionné dans sa réponse.
OriginalL'auteur Shashank M Vaishnav | 2012-11-02
Vous devez vous connecter pour publier un commentaire.
Il est assez facile d'option pour cela:
Vous n'avez même pas besoin d'autre chose alors.
Ou si
file_get_contents
est désactivé (en général, il n'est pas), cela devrait aussi fonctionner:Edit: Ce n'est plus possible, puisque vous ne pouvez pas utiliser le nom d'utilisateur pour les appels API plus. Vous devez utiliser une App (Étendue) ID après autorisation d'un Utilisateur avec le Facebook de l'API au lieu du nom d'utilisateur.
j'ai inclus une version avec curl trop, ne pas le tester, mais devrait être à peu près la même
merci beaucoup monsieur....curl chose a fonctionné 🙂
qu'est-ce que l' $timeout d'initialisation? il n'est pas utilisé partout O. o
bonne question, il est vraiment pas nécessaire ici, mal à l'enlever. merci pour le heads up 🙂
OriginalL'auteur luschn
OriginalL'auteur Guru
je pense que c'est un plus pour aller de l'api de réponse pour l'image de toutes les fonctions de travail sur allow_url_fopen = on (copie,fputs,file_put_contents) vous acn obtenir de l'image à l'aide de curl, mais pour l'enregistrement dans le dossier que vous avez allow_url_fopen = on dans votre php.ini
OriginalL'auteur Rakesh Sharma
ce n'est pas une erreur , curl réponse
sir comment l'utiliser maintenant ?
Copiez ce code dans un fichier PHP , créer un dossier nommé "fbimg" et de donner des droits en écriture sur ce dossier , je l'ai mentionné facebookid - donnez votre facebook id et l'exécuter dans le navigateur , votre profiile de l'image sera téléchargée dans "fbimg" dossier
j'ai essayé la même chose, mais que le texte précité est à venir et l'image n'est pas à venir 🙁
OriginalL'auteur senthilbp