Facebook从XMLHttpRequest图像共享描述中删除了包含波兰符号的特殊字符

时间:2015-10-28 10:23:12

标签: javascript facebook facebook-graph-api xmlhttprequest

好的,所以这是我的问题。 我有通过开放图表直接与Facebook共享图像的代码。即使它应该发送描述与波兰符号没有任何问题,它不是。

我作为描述发送的内容是:
Zdjęciezaplikacji http://www.xxx.pl/

我的墙上出现的图像描述如下:
Zdjcie z aplikacji http://www.xxx.pl/

我花了几个小时研究它为什么会发生并且几乎找不到任何东西。我真的很感激任何关于它的想法,因为我真的厌倦了这个垃圾。

这是我的代码的一部分,负责将数据发布到Facebook:

function PostImageToFacebook(authToken, filename, mimeType, imageData, message) {

  var boundary = '----ThisIsTheBoundary1234567890';

  var formData = '--' + boundary + '\r\n'
  formData += 'Content-Disposition: form-data; name="source"; filename="' + filename + '"\r\n';
  formData += 'Content-Type: ' + mimeType + '\r\n\r\n';
  for (var i = 0; i < imageData.length; ++i) {
    formData += String.fromCharCode(imageData[i] & 0xff);
  }
  formData += '\r\n';
  formData += '--' + boundary + '\r\n';
  formData += 'Content-Disposition: form-data; name="caption"\r\n';
  formData += 'Content-Type: text/plain; charset=utf-8\r\n\r\n';
  formData += message + '\r\n'
  formData += '--' + boundary + '--\r\n';

  console.log(formData);

  var xhr = new XMLHttpRequest();
  xhr.open('POST', 'https://graph.facebook.com/me/photos?access_token=' + authToken, true);
  xhr.onload = xhr.onerror = function() {
    console.log(xhr.responseText);
    $(".photo-uploaded").fadeIn();
    $(".share_to_facebook").removeClass("disabled");
  };
  xhr.setRequestHeader("Content-Type", "multipart/form-data; boundary=" + boundary + "; charset=utf-8");
  xhr.sendAsBinary(formData);
}

PostImageToFacebook(fbToken, imgDesc, "image/png", decodedPng, "Zdjęcie z aplikacji http://www.xxx.pl");

0 个答案:

没有答案