ユーザーは SVG をカスタマイズし、満足したら、Facebook で画像を共有するオプションを提供したいと考えています。
Facebook が SVG を受け入れないことは知っているので、この質問を読んだ後、 を使用して次のことを思いつきましたcanvg
。
var svgText = "<svg>" + $("#canvas2").html() + "</svg>";
canvg(document.getElementById('drawingCanvas'), svgText);
var img = document.getElementById('drawingCanvas').toDataURL("image/png");
の命名にもかかわらず、.toDataURL
はimg
URL ではなく (少なくとも、そうではないと思います)、 で構成される 10,000 文字を超える文字列ですdata:image/png;base64,...
。
次に、ユーザーが Facebook で PNG を共有できるようにしようとすると、
window.FB.ui({
href: "https://dna.land",
method: 'feed',
name: 'name',
link: "dna.land",
picture: img,
caption: 'mywebsite.com',
description: "description",
message: "message"
}, function(response) {});
私が得るエラーメッセージは、「パラメータhref」が必要です(明らかに指定しています...おそらくimg
長すぎてJSONが切り捨てられていますか?)、有効なURLを指定していないこともわかりましたのためにpicture
。
Facebook で画像データを共有するにはどうすればよいですか?
PNG の生の base 64 エンコーディングでこれを行う方法がない場合、PNG ファイルを一時的にサーバーに保存することを嫌いません。しかし、理想的には、24 時間、または数か月、またはわずかな期間だけ保存し、ユーザーの投稿が消えることなく削除できるようにすることです。それは可能ですか?