Hi Arkesh,

The latest version of file can be obtained from here (Choose .NET):
http://code.google.com/apis/apps/libraries_and_samples.html#reporting

Compiling the source code using the following command will generate
ReportingAPIClient.exe in your current directory:
"C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe
ReportingAPIClient.cs",

You can make sure that your C# compiler i.e. csc.exe is in the
directory by visiting it.

You can then run the executable passing the commandline arguments:
c:\reporting\ReportingAPIClient.exe --email [EMAIL PROTECTED] --
password password --report accounts

These instructions are present in the README file bundled with client
library download.

Also, not sure if that's the cause of the error but i did notice some
extra spaces in the URL of namespace declaration:
xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance "

The URL you need to POST to is:
https://www.google.com/hosted/services/v1.0/reports/ReportingData

Do not replace anything in the URL.

-Anirudh

On Aug 20, 6:37 pm, Arkesh <[EMAIL PROTECTED]> wrote:
> Hi Anirudh,
>  Thanks for replying.I appreciate it.
> I am using Poster add-ons of firefox for sending XML HTTP
> Request.Intresting thing is that i recieve SID token but when i put
> this SID token in actual XML Activity report in <token></token> tag it
> do not works.It just give html codes for Google page.Again i assure
> that i am putting valid
> <domain>example.com</domain>
> <date>YYYY-MM-DD</date>
> everythig is fine.
> what you think do i 
> manipulatehttps://www.google.com/accounts/ClientLoginhttps://www.google.com/hosted_or_google/services/v1.0/reports/Reporti...
> address,byhttps://www.google.com/a/example.com/services/v1.0/reports/ReportingData
> As far as C# file is concerned
> first i write something like below,
> C:\Windows\Microsoft.NET\Framework\VERSION\csc.exe
> then i write
> C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe
> ReportingAPIClient.cs
> it is not asking to take parameters like email,password,domain,token
> etc.i am pretty sure that i do not have to manipulate given
> ReportingAPIClient.cs file.In your case if you can run the C# file
> then can you forward me that particular c# ReportingAPIClient.cs
> file???
> Here is the file which i use.
> ===========
> /* Copyright (c) 2007 Google Inc.
>  *
>  * Licensed under the Apache License, Version 2.0 (the "License");
>  * you may not use this file except in compliance with the License.
>  * You may obtain a copy of the License at
>  *
>  *    http://www.apache.org/licenses/LICENSE-2.0
>  *
>  * Unless required by applicable law or agreed to in writing, software
>  * distributed under the License is distributed on an "AS IS" BASIS,
>  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
>  * See the License for the specific language governing permissions and
>  * limitations under the License.
>  */
>
> using System;
> using System.IO;
> using System.Net;
> using System.Text;
> using System.Collections;
> using System.Web;
>
> namespace Google.Apps.Reporting
> {
>     /// <summary>
>     /// This contains the logic for constructing and submitting a
> report
>     /// request to the Google Apps reporting service and reading the
> response.
>     ///
>     /// The description of the web service protocol can be found at:
>     ///
>     
> ///http://code.google.com/apis/apps/reporting/google_apps_reporting_api....
>     ///
>     /// Example usage:
>     ///   ReportingAPIClient client = new ReportingAPIClient();
>     ///   client.email = "[EMAIL PROTECTED]";
>     ///   client.password = "passwd";
>     ///   client.domain = "example.com";
>     ///   client.ClientLogin();
>     /// Get the latest accounts report to standard output.
>     ///   client.getReport("accounts", null, null);
>     /// Get the accounts report for May 15, 2007 and save it to
> out.txt.
>     ///   client.getReport("accounts", "2007-05-15", "out.txt");
>     /// </summary>
>     public class ReportingAPIClient
>     {
>         /// <summary>
>         /// URL to POST to obtain an authentication token
>         /// </summary>
>         private const string CLIENT_LOGIN_URL =
>           "https://www.google.com/accounts/ClientLogin";;
>
>         /// <summary>
>         /// URL to POST to retrive resports from the API
>         /// </summary>
>         private const string REPORTING_URL =
>           "https://www.google.com/hosted/services/v1.0/reports/
> ReportingData";
>
>         /// <summary>
>         /// Date format of the API
>         /// </summary>
>         private const string DATE_FORMAT = "yyyy-MM-dd";
>
>         /// <summary>
>         /// Hour of the day when the API data gets published
>         /// </summary>
>         private const int PUBLISH_HOUR_OF_DAY = 13; // Publish hour +
> 1 hour;
>
>         /// <summary>
>         /// Time diference to UTC
>         /// </summary>
>         private const int PUBLISH_TIME_DIFERENCE_TO_UTC = -8;
>
>         /// <summary>
>         /// Email command-line argument
>         /// </summary>
>         private const string EMAIL_ARG = "email";
>
>         /// <summary>
>         /// Password command-line argument
>         /// </summary>
>         private const string PASSWORD_ARG = "password";
>
>         /// <summary>
>         /// Domain command-line argument
>         /// </summary>
>         private const string DOMAIN_ARG = "domain";
>
>         /// <summary>
>         /// Report command-line argument
>         /// </summary>
>         private const string REPORT_ARG = "report";
>
>         /// <summary>
>         /// Date command-line argument
>         /// </summary>
>         private const string DATE_ARG = "date";
>
>         /// <summary>
>         /// Output File command-line argument
>         /// </summary>
>         private const string OUT_FILE_ARG = "out";
>
>         /// <summary>
>         /// Message for command-line usage
>         /// </summary>
>         private const string USAGE = "Usage:  " +
>           "ReportingAPI --" + EMAIL_ARG + " <email> --" +
>           PASSWORD_ARG + " <password> [ --" +
>           DOMAIN_ARG + " <domain> ] --" +
>           REPORT_ARG + " <report name> [ --" +
>           DATE_ARG + " <YYYY-MM-DD> ] [ --" +
>           OUT_FILE_ARG + " <file name> ]";
>
>         /// <summary>
>         /// List of command-line arguments
>         /// </summary>
>         private static string[] PROPERTY_NAMES = new String[]
> {EMAIL_ARG,
>           PASSWORD_ARG, DOMAIN_ARG, REPORT_ARG, DATE_ARG,
> OUT_FILE_ARG};
>
>         /// <summary>
>         /// List of required command-line arguments
>         /// </summary>
>         private static string[] REQUIRED_PROPERTY_NAMES = new String[]
> {
>           EMAIL_ARG, PASSWORD_ARG, REPORT_ARG};
>
>         /// <summary>
>         /// Google Apps Domain
>         /// </summary>
>         public string domain = null;
>
>         /// <summary>
>         /// Email address of an Administrator account
>         /// </summary>
>         public string email = null;
>
>         /// <summary>
>         /// Password of the Administrator account
>         /// </summary>
>         public string password = null;
>
>         /// <summary>
>         /// Identifies the type of account
>         /// </summary>
>         private string accountType = "HOSTED";
>
>         /// <summary>
>         /// Identifies the Google service
>         /// </summary>
>         private string service = "apps";
>
>         /// <summary>
>         /// Contains a token value that Google uses to authorize
>         /// access to the requested report data
>         /// </summary>
>         private string token = null;
>
>         /// <summary>
>         /// Default constructor
>         /// </summary>
>         public ReportingAPIClient()
>         {
>         }
>
>         /// <summary>
>         /// Retrieves the Authentication Token
>         /// </summary>
>         /// <returns>Returns the authentication token.</returns>
>         public string GetToken()
>         {
>             return this.token;
>         }
>
>         /// <summary>
>         /// Logs in the user and initializes the Token
>         /// </summary>
>         public void ClientLogin()
>         {
>             string token = null;
>             UTF8Encoding encoding = new UTF8Encoding();
>             string postData = "Email=" +
> HttpUtility.UrlEncode(this.email) +
>               "&Passwd=" + HttpUtility.UrlEncode(this.password) +
>               "&accountType=" +
> HttpUtility.UrlEncode(this.accountType) +
>               "&service=" + HttpUtility.UrlEncode(this.service);
>             byte[] data = encoding.GetBytes(postData);
>             HttpWebRequest request =
>               (HttpWebRequest)WebRequest.Create(CLIENT_LOGIN_URL);
>             request.Method = "POST";
>             request.ContentType = "application/x-www-form-urlencoded";
>             request.ContentLength = data.Length;
>             Stream inputStream = request.GetRequestStream();
>             inputStream.Write(data, 0, data.Length);
>             inputStream.Close();
>             HttpWebResponse response =
> (HttpWebResponse)request.GetResponse();
>             string responseStr = (new StreamReader(
>               response.GetResponseStream())).ReadToEnd();
>             char[] tokenizer = { '\r', '\n' };
>             string[] parts = responseStr.Split(tokenizer);
>             foreach (string part in parts)
>             {
>                 if (part.StartsWith("SID="))
>                 {
>                     token = part.Substring(4);
>                     break;
>                 }
>             }
>             this.token = token;
>         }
>
>         /// <summary>
>         /// Creates a XML request for the Report
>         /// </summary>
>         /// <param name="reportName">The name of the Report:
> activity,
>         ///   disk_space, email_clients, quota_limit_accounts,
>         ///   summary, suspended_account</param>
>         /// <param name="date">Date of the Report</param>
>         /// <returns>Thx XML request as a string</returns>
>         public string createRequestXML(string reportName, string date)
>         {
>             if (this.domain == null)
>             {
>                 this.domain = getAdminEmailDomain();
>             }
>             string xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
>             xml += "<rest xmlns=\"google:accounts:rest:protocol\"";
>             xml += " xmlns:xsi=\"";
>             xml += "http://www.w3.org/2001/XMLSchema-instance\";>";
>             xml += "<type>Report</type>";
>             xml += "<token>" + this.GetToken() + "</token>";
>             xml += "<domain>" + this.domain + "</domain>";
>             xml += "<date>" + date + "</date>";
>             xml += "<reportType>daily</reportType>";
>             xml += "<reportName>" + reportName + "</reportName>";
>             xml += "</rest>";
>             return xml;
>         }
>
>         /// <summary>
>         /// Get the domain of the admin's email address.
>         /// </summary>
>         /// <returns>the domain, otherwise returns null</returns>
>         public string getAdminEmailDomain()
>         {
>             if (this.email != null)
>             {
>                 int atIndex =...
>
> read more »
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Apps APIs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-apps-apis?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to