php
  • instagram
  • instagram-api
  • 2015-06-19 55 views 5 likes 
    5

    我试图在Instagram Instagram /创建/功能,但我有一些错误。PHP Instagram的友谊/创建/错误

    帐号/登录功能正在工作。

    友谊/创建错误:“请更新您的Instagram应用程序以继续关注。”

    require_once("instagram.php"); 
    $username = ''; 
    $password = ''; 
    $agent = 'Instagram 6.21.2 Android (19/4.4.2; 480dpi; 1152x1920; Meizu; MX4; mx4; mt6595; en_US)'; 
    $guid = GenerateGuid(); 
    $device_id = "android-".$guid; 
    $data ='{"device_id":"'.$device_id.'","guid":"'.$guid.'","username":"'.$username.'","password":"'.$password.'","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}'; 
    $sig = GenerateSignature($data); 
    $data = 'signed_body='.$sig.'.'.urlencode($data).'&ig_sig_key_version=6'; 
    $login = SendRequest('accounts/login/', true, $data, $agent, false); 
    print_r($login); 
    
    /********** 
    
    Login working successfully! No problem... 
    
    ***********/ 
    
    /********* 
    But error area is here. 
    **********/ 
    
    $device_id = "android-".$guid; 
    $data = '{"device_id":"'.$device_id.'","guid":"'.$guid.'","device_timestamp":"'.time().'","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}'; 
    $sig   = GenerateSignature($data); 
    $new_data  = 'signed_body='.$sig.'.'.urlencode($data).'&ig_sig_key_version=6'; 
    $follow   = SendRequest('friendships/create/29180689', true, $new_data, $agent, true); 
    

    === instagram.php ===

    function SendRequest($url, $post, $post_data, $user_agent, $cookies) { 
    
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, 'https://instagram.com/api/v1/'.$url); 
    /* 
    curl_setopt($ch, CURLOPT_PROXY, $proxy); 
    curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth); 
    */ 
    curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    
    if($post) { 
        curl_setopt($ch, CURLOPT_POST, true); 
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 
    } 
    
    if($cookies) { 
        curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');    
    } else { 
        curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt'); 
    } 
    
    $response = curl_exec($ch); 
    $http = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    curl_close($ch); 
    return array($http, $response); 
    } 
    function GenerateGuid() { 
    return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', 
         mt_rand(0, 65535), 
         mt_rand(0, 65535), 
         mt_rand(0, 65535), 
         mt_rand(16384, 20479), 
         mt_rand(32768, 49151), 
         mt_rand(0, 65535), 
         mt_rand(0, 65535), 
         mt_rand(0, 65535)); 
    } 
    function GenerateSignature($data) { 
    return hash_hmac('sha256', $data, '25eace5393646842f0d0c3fb2ac7d3cfa15c052436ee86b5406a8433f54d24a5'); 
    } 
    
    +0

    您是否找到了解决方法? –

    回答

    -1

    您正在尝试使用私有API,它们不被Instagram的的使用条款允许的,所以只有人谁的作品有知道的在这里失踪。

    还有就是公共API,可以实现你想在这里做的:https://instagram.com/developer/endpoints/relationships/#post_relationship

    +0

    我的应用程序是新的。所以我不能添加关系范围。你知道新应用的解决方案吗? –

    +0

    您必须提交应用以供审核,然后才能使用关系范围。 afaik没有别的办法。 –

    0

    修改这一行:

    $data = '{"device_id":"'.$device_id.'","guid":"'.$guid.'","device_timestamp":"'.time().'","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}'; 
    

    $data = '{"user_id":"'.$user_id.'","device_id":"'.$device_id.'","guid":"'.$guid.'","device_timestamp":"'.time().'","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}'; 
    

    你错过了user_id参数在请求内。

    +0

    '''$ user_id''是否与''''username'''相同? –

    相关问题