2009-08-13 19 views
1

Facebook APIサーバーでPhoto.uploadを呼び出そうとしています。私の知る限りでは、コールを構築するコードは良いですが、私は応答を私はサーバーから戻ってきて理解できません。私が見る限りでは、この呼びかけは働くべきものであり、他の人々はこの問題を抱えていません。私は何かがコードに間違っていることだけを理由づけることができます。コメントされたものは、サーバーから別の応答を得るために私が別のものを試している人工物です。Facebook APIコール - 「このAPIバージョンは推奨されていません」

http://www.jaisenmathai.com/blog/2008/11/27/using-the-facebook-api-to-upload-photos/

サーバーResponce:

12を私が変更した元のコードは、私はどちらか本当に仕事を得ることができませんでしたこれを行う方法の例から取られた部分にありましたこのAPIのバージョンは法photos.upload API_KEY b92cee19a33c861275bfce4695896e44 CALL_ID 1250194789.61 garden_jpg /var/www/vivaladan/pictureyourselfhull/garden.jpg V 0 SIG 896ee95339cad24ce7e64a05ca764123

廃止されましたコード

$key = b92cee19a33c861275bfce4695896e44; 
$ver = 1.0; 
$cid = microtime(true); 
$uid = BIGINT; 
$file= "garden.jpg"; 

$args = array(
    //amethod => photos.upload, 
    v => $ver, 
    api_key => $key, 
    //uid => $uid, 
    call_id => $cid, 
    //format => XML 
); 

$args[basename($file)] = realpath($file); 
signRequest($args,$sec); 

$postString = ""; 
foreach($args as $index => $value) { 
$postString .= $index ."=".$value."&"; 
} 
$postString = trim($postString, '&'); 


$ch = curl_init(); 
$url = "http://api.facebook.com/restserver.php?method=photos.upload"; 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString); 
$data = curl_exec($ch); 

echo $data; 

function signRequest(&$args, $secret){ 
    ksort($args); 
    $sig = ""; 
    foreach($args as $k => $v){ 
    $sig .= $k . '=' . $v; 
    } 
    $sig .= $secret; 
    $args[sig] = md5($sig); 
} 
+0

Uhg、そのインターフェイスは、RESTfulではありません。申し訳ありませんが、私はそれがあなたのコメントに関連していないことを知っていますが、それらがメソッドを埋め込むときは、汎用のURLへのPOSTコールであり、RESTと呼ぶだけでSOAP/RPCのシードを播くことができます... – Gandalf

+2

http://api.facebook .com/restserver.php?method = photos.uploadは完全に有効な一意のURIです。誰がRESTにmod_rewriteという素晴らしいURLが必要だと言っていますか? – ceejayoz

+0

@ceejayozそれがRESTfulではない理由は、すべて同じURIが使用されるということです。リソースには固有のURIが必要です。クエリパラメータはURIの一部としてカウントされません。それらは、そのURIのクエリパラメータです。クエリ文字列を含むURIはキャッシュされないため、これは重要です。これはRPCスルースルーです。 – aehlke

答えて

0

私はあなたが$ver = 0.0;を使用しているからだと推測している - APIのない0.0バージョンはありません。

+0

違いがあるかどうかを確認するために、私は異なるバージョン番号を試していました。それはもともとは1.0でした。コードサンプルに戻しました –

0

代わりにapi.new.facebook.com API URLを使用してください。

2

Rest API呼び出しがもう機能しません。 Try GraphApi

関連する問題