2009-07-02 21 views
0

私はウェブサイトとの少しのフェイスブックの統合をしようとしていますが、Facebookアカウントに画像を投稿するという特定の呼び出しがフェイスブックAPIにあります。パラメータの1つは生の画像データです。イメージはウェブサーバー上にローカルに保存されており、私はそれにURLを持っています。私はこれを行うことができないことを学ぶまで、私はJavaScriptを使用してクライアント上のイメージを読み込もうとしていた。私は現在、画像URLを持つサーバーへのhttpxml呼び出しを試みており、画像データを返すようにしています。このサンプルコードは、csvファイルへのURLで動作しますが、画像ファイルの内容を読み取ることは望ましくありません。 xmlhttp.responseTextを試してみるとエラーになります。私は、この画像データを使用するAPI呼び出しは次のとおりです。AJAXを使用して生の画像データをロードする

http://wiki.developers.facebook.com/index.php/Photos.upload

function getFile(pURL,pFunc) { 
     xmlhttp=new ActiveXObject('Microsoft.XMLHTTP'); 
     if (xmlhttp) { 
      eval('xmlhttp.onreadystatechange='+pFunc+';'); 
      xmlhttp.open('GET', pURL, false); 
      xmlhttp.send(); 
     } 
} 

function makeList() { 
    if (xmlhttp.readyState==4) { 
     if (xmlhttp.status==200) { 
      var tmpArr=xmlhttp.responseText; 
      document.getElementById('theExample').innerHTML=tmpArr; 
     } 
    } 
} 

このウェビーものの私のひどい理解を許しなさい。私はそれを学ぶ必要がありますが、私は座ってこのすべての良いものを学ぶ前に、この素​​早い作業をする必要があります。私はC#/ C++の世界では長年にわたって定着してきました。

+0

申し訳ありませんが、これはちょっとした質問です。 1.なぜ画像の内容を取得できないのですか(表示しないで、facebook APIに渡す) 2.このAPIコールを行うには正しい方向に行っていますか? 私は何が示唆されているかを試してみて、どこにでも行くことができるかどうかを確認します。 –

答えて

1

あなたはfacebookアプリを書いていて、facebook apiを使ってアプリケーションからあなたのプロフィールに画像をアップロードしようとしていますか?

apiには、マルチパートMIMEを持つHTTPポストが必要です。これはあなたを捨てるものだと思います。

クライアントライブラリを使用していますか?もしそうなら、私はあなたが使用していると仮定:http://facebook.codeplex.com/

このPHPの参照が必要な根拠を持っている:私はあなたのコードで表示さhttp://www.ajaxlines.com/ajax/stuff/article/using_the_facebook_api_to_upload_photos.php

一つの問題は、あなたがresponseText(へURLから画像を引っ張っしようとしているということです文字列)の代わりにresponseBody(バイナリ)を使用します。 http://msdn.microsoft.com/en-us/library/ms535874(VS.85).aspx

+0

responseBodyは標準的なプロパティではありません。 Firefoxの場合、別のトリックを使用する必要があり、IE6の場合はおそらく運が悪いです。 https://developer.mozilla.org/En/Using_XMLHttpRequest クライアント側の違いを回避しようとするのではなく、サーバーがバックエンドHTTPリクエストを送信してフォーム投稿を送信する方がよいでしょう。 – EricLaw

1

サーバー上のイメージのURLを知っている場合は、イメージ要素を作成するだけではどうですか。

var img = document.createElement("img"); 
img.src = url; // assuming you have the URL in a variable called "url" 
document.getElementById("image_holder").appendChild(img); 
関連する問題