Facebook stream.publish с вложенным изображением из Base64 - PullRequest
3 голосов
/ 18 июля 2010

Я пытаюсь получить стрим Facebook.publish, чтобы сделать пост на стене, который включает в себя некоторый пользовательский текст и динамически генерируемое изображение с сайта.Изображение доступно только в формате Base64, поскольку оно нарисовано пользователем до начала действия публикации.Facebook, похоже, не нравится, когда src передается в виде строки Base64.Кто-нибудь знает обходной путь или я буду вынужден сначала сохранить изображение на сервер, а затем предоставить ссылку (я бы действительно не хотел этого делать).

Ответы [ 2 ]

3 голосов
/ 20 июля 2010

Вы не можете передать изображение base64 на Facebook в JavaScript. Вам нужно будет отправить его на ваш сервер и преобразовать в png / jpeg или что-то еще и загрузить его оттуда в Facebook (для этого потребуется пользовательские разрешения какого-то рода). Либо так, либо сохраните его на сервере, а затем используйте URL-адрес, который будет служить png / jpg в JavaScript.

1 голос
/ 03 марта 2012

Вы можете сделать следующее в PHP:

function base64_to_jpeg( $base64_string, $output_file ) {
  $ifp = fopen( $output_file, "wb" ); 
  fwrite( $ifp, base64_decode( $base64_string) ); 
  fclose( $ifp ); 
  return( $output_file ); 
}
$facebook->setFileUploadSupport(true);
$image = base64_to_jpeg( $your_base64_string, 'tmp.jpg' );
$args = array('message' => 'Some message');
$args['image'] = '@' . realpath( $image );
$data = $facebook->api('/your_user_id/photos', 'post', $args);
unlink($image);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...