代码之家  ›  专栏  ›  技术社区  ›  Daniel Revell

Facebook API调用-“此API版本已弃用”

  •  1
  • Daniel Revell  · 技术社区  · 15 年前

    我正试图调用Facebook API服务器上的photo.upload。就我所知,构造调用的代码是很好的,但是我无法理解从服务器返回的响应。据我所见,这个电话是为了工作,其他人没有这个问题。我只能推断出密码有问题。评论的东西是我尝试不同的东西从服务器得到不同的响应的产物。我修改过的原始代码部分来自一个示例,该示例说明了如何执行此操作,但我也无法真正开始工作:

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

    服务器响应:

    12此API版本不推荐使用方法照片。上载API密钥B92CEE19A33C861275BFCE4695896E44调用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);
    }
    
    3 回复  |  直到 11 年前
        1
  •  2
  •   utnapistim    12 年前

    rest api调用不再工作。 尝试 GraphApi

        2
  •  0
  •   ceejayoz    15 年前

    我猜是因为你在用 $ver = 0.0; -没有0.0版本的api。

        3
  •  0
  •   Artjom Kurapov    15 年前

    尝试改用api.new.facebook.com api url