2011-10-21 9 views
2

私はGoogle+のカウント情報を引き出す方法を見つけようとしています。私はここでコードを使用しようとしました(若干修正):http://johndyer.name/getting-counts-for-twitter-links-facebook-likesshares-and-google-1-plusones-in-c-or-php/。しかし、私は画面に置いたときに次のエラーが表示されます:pos.plusones.getを使用してGoogle +のカウントを取得するにはCを使用していない#

Google says:[ { "error": { "code": 400, "message": "Invalid Value", "data": [ { "domain": "global", "reason": "invalid", "message": "Invalid Value" } ] }, "id": "p" } ] 

以下の簡単なテストページのコードです。何か案は?

protected void Page_Load(object sender, EventArgs e) 
{ 
    Response.Write("Google says:" + GetPlusOnes("http://www.google.com")); 
} 

string GetPlusOnes(string url) 
{ 

    string googleApiUrl = "https://clients6.google.com/rpc"; //?key=AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ"; 

    string postData = @"[{""method"":""pos.plusones.get"",""id"":""p"",""params"":{""nolog"":true,""id"":""" + url + @""",""source"":""widget"",""userId"":""@viewer"",""groupId"":""@self""},""jsonrpc"":""2.0"",""key"":""p"",""apiVersion"":""v1""}]"; 

    System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(googleApiUrl); 
    request.Method = "POST"; 
    request.ContentType = "application/json-rpc"; 
    request.ContentLength = postData.Length; 

    System.IO.Stream writeStream = request.GetRequestStream(); 
    UTF8Encoding encoding = new UTF8Encoding(); 
    byte[] bytes = encoding.GetBytes(postData); 
    writeStream.Write(bytes, 0, bytes.Length); 
    writeStream.Close(); 

    System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse(); 
    System.IO.Stream responseStream = response.GetResponseStream(); 
    System.IO.StreamReader readStream = new System.IO.StreamReader(responseStream, Encoding.UTF8); 
    string jsonString = readStream.ReadToEnd(); 

    readStream.Close(); 
    responseStream.Close(); 
    response.Close(); 

    return jsonString; 
    //var json = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize(jsonString); 
    //int count = Int32.Parse(json[0]["result"]["metadata"]["globalCounts"]["count"].ToString().Replace(".0", "")); 

    //return count; 
} 

これはfacebookとtwitterでとても単純ですが、なぜGoogleが同じパターンに従うことができなかったのですか?なぜそんなに複雑なの?

答えて

1

だけの推測として、私はあなたがこの行では、あなたとkeyをコメントアウトする必要があると仮定します。

string googleApiUrl = "https://clients6.google.com/rpc"; //?key=AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ"; 

ので、それはのようなものになり:

string googleApiUrl = "https://clients6.google.com/rpc?key=AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ"; 
1

うん、あなたが登録する必要がありますそれのための。ここをクリックしてください。https://code.google.com/apis/console/?pli=1#project:352290279458:services

+0

https://code.google.com/apis/console/?pli=1#project:352290279458:servicesはもう存在しません。http://www.tomanthony.co .uk/blog/google_plus_one_button_seo_count_api /「開発者キー」AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQを使用する必要があります。 – lmeurs

関連する問題