How to save facebook profile picture using api php graphic

I use this curl class to save a file ->

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 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, )); 

this code above will give me a temporary url in the $ sourceFilePath variable, now I want to save this image in the image folder. I'm stuck here ... please help me with this ... thank you in advance.

+4
source share
4 answers

There is a fairly simple option for this:

 $url = 'http://graph.facebook.com/shashankvaishnav/picture'; $data = file_get_contents($url); $fileName = 'fb_profilepic.jpg'; $file = fopen($fileName, 'w+'); fputs($file, $data); fclose($file); 

You don’t need anything yet.

Or if file_get_contents disabled (usually not), this should also work:

 $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, 'http://graph.facebook.com/shashankvaishnav/picture'); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($ch); curl_close($ch); $fileName = 'fb_profilepic.jpg'; $file = fopen($fileName, 'w+'); fputs($file, $data); fclose($file); 

Edit: this is not possible since you can no longer use the username for API calls. You must use the application identifier (Application Scoped) after authorizing the User with the Facebook API instead of the username.

+15
source
 $filename = 'abcd.jpg'; $to = 'image/'.$filename; if(copy($sourceFilePath,$to)) echo 'copied'; else echo 'error'; 
0
source
 $fbprofileimage = file_get_contents('http://graph.facebook.com/senthilbp/picture/'); file_put_contents('senthilbp.gif', $fbprofileimage); 
0
source
 $profile_Image = 'http://graph.facebook.com/shashankvaishnav/picture'; $userImage = $picturtmp_name . '.jpg'; // insert $userImage in db table field. $savepath = '/images/'; insert_user_picture($savepath, $profile_Image, $userImage); function insert_user_picture($path, $profile_Image, $userImage) { $thumb_image = file_get_contents($profile_Image); $thumb_file = $path . $userImage; file_put_contents($thumb_file, $thumb_image); } 
0
source

Source: https://habr.com/ru/post/1443607/


All Articles