php
  • api
  • curl
  • safe-browsing
  • 2016-05-24 14 views 0 likes 
    0

    GoogleセーフブラウジングルックアップAPI(v4)を使用しようとしているPHPスクリプトがありますが、 "無効なJSONペイロードが届きました。 :ルート要素はメッセージでなければならない...」ここでセーフブラウジングルックアップAPI(v4)無効なJSONペイロードが受信されました

    は私のコードです:

    <?php 
    
    $data = '{ 
        "client": { 
        "clientId": "TestClient", 
        "clientVersion": "1.0" 
        }, 
        "threatInfo": { 
        "threatTypes":  ["MALWARE", "SOCIAL_ENGINEERING"], 
        "platformTypes": ["LINUX"], 
        "threatEntryTypes": ["URL"], 
        "threatEntries": [ 
         {"url": "http://www.google.com"} 
        ] 
        } 
    }'; 
    
    
    $apikey = "my_secret_api_key"; 
    $url_send ="https://safebrowsing.googleapis.com/v4/threatMatches:find?key=".$apikey.""; 
    
    $str_data = json_encode($data); 
    
    function sendPostData($url, $post){ 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", 'Content-Length: ' . strlen($post))); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $result = curl_exec($ch); 
    return $result; 
    } 
    
    $jaahas = sendPostData($url_send, $str_data); 
    
    echo "<pre>"; 
    var_dump($jaahas); 
    
    ?> 
    

    は、JSONデータ配列は、書式設定や何か問題があるかもしれないと間違って何かがありますか?

    答えて

    0

    すでにエンコードされているデータに対してjson_encodeを実行しています。

    ie。

    $jaahas = sendPostData($url_send, $data); 
    

    $jaahas = sendPostData($url_send, $str_data); 
    

    +0

    はありがとう、私はそれを変更するとき、私は答えます::**文字列(3) "{}" **この行が変更されます。 Googleのドキュメントによれば、応答は他のものでなければなりません。https://developers.google.com/safe-browsing/v4/lookup-api#http-post-response – josu

    +1

    実際に問題は解決しました。このコードは、@ Vortigernによるlitleの改変で動作します。Googleは、サイトが感染していない場合、何の応答も出さないだけです! – josu

    関連する問題