2013-12-20 58 views
0

我需要使用Base64編碼的.jpg圖像,因爲我無法使用託管圖像。 如何使用$ base64image作爲submitted-image-url數組部分?如何在PHP中使用Base64發佈圖片?

PHP:

$base64image ="AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAABMLAAATCwAAAAAA 
    AAAAAAAAAAAAbGxt/=="; 

$postData = array(
'visibility' => array('code' => 'anyone'), 
'content' => array('submitted-url' => "http://example.com",'title' =>"helloworld", 'submitted-image-url' => "http://www.example.com/mypic.png"), 
); 

$ch = curl_init('https://api.linkedin.com/v1/people/~/shares?oauth2_access_token='.$authToken); 
curl_setopt_array($ch, array(
    CURLOPT_POST => TRUE, 
    CURLOPT_RETURNTRANSFER => TRUE, 
    CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json' 
    ), 
    CURLOPT_POSTFIELDS => json_encode($postData) 
)); 

謝謝

+0

這將取決於linkedin,如果他們允許數據uris這樣的事情。如果他們期望他們從中獲取圖像的完整網址,那麼你的運氣不好。 –

+0

@MarcB我想嘗試一下。你能給我演示一個如何使用uris/Base64數據的例子嗎? – Patrick

回答

0

這是不可能的。您必須提供託管圖片鏈接到api中的鏈接。他們將使用您的圖片與分享的鏈接。

您可以在您的服務器上託管一個PHP腳本。將您的base64編碼圖像發送到腳本並使腳本從base64返回圖像。爲此使用PHP的gd庫。例如:

yourserver/img/getImg.php?image=AAABAAEAE... 

不過,它可能無法正常工作。因爲它會讓你的圖片鏈接太大,恐怕linkedin可能不會接受如此大的圖片url作爲參數。您可以嘗試縮短圖像與服務器的鏈接,但這是另一回事。

+0

感謝您的輸入!我需要使用Base64可能的其他API。你能告訴我一個例子如何在PHP/cURL中使用Base64? – Patrick

+0

CURLOPT_POSTFIELDS => BASE64_ENCODE(的file_get_contents($ img_file)) –

+0

的圖像已被編碼,例如是這樣的:'$ base64image = 「AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAABMLAAATCwAAAAAA AAAAAAAAAAAAbGxt/==」;'如何發送的?它是這樣的'CURLOPT_POSTFIELDS => base64($ base64image)'? – Patrick