2012-02-29 15 views

Trả lời

2

tốt, không phải là tôi biết. Không có gì nhiều để nó mặc dù, tùy thuộc vào việc bạn muốn sử dụng nó phía khách hàng hoặc phía máy chủ bạn sử dụng phương pháp tiếp cận javascript (như tài liệu trong restapi) hoặc chỉ đơn giản là System.Net.WebRequest cho phía máy chủ.

Kiểm tra Dan's .NET blog

+0

Cảm ơn cho câu trả lời. Tôi sẽ sử dụng nó phía máy chủ để tích hợp vào các hệ thống khác. Tôi đã thực sự hy vọng cho một cái gì đó sẽ phân tích WebResponse vào các lớp đại diện tài nguyên SF trả về và xử lý lỗi chắc chắn - công cụ tẻ nhạt :) –

+0

nếu bạn muốn gõ mạnh, bạn nên đi theo cách WSDL và sử dụng các dịch vụ web. tạo mã, nó thậm chí không ủy quyền việc sử dụng JSON mà sf restApi sử dụng và nó không bao gồm bất kỳ siêu dữ liệu chuẩn nào mà bạn có thể phân tích cú pháp và tạo các lớp. Về lý thuyết bạn có thể sử dụng/sobjects/'object_name'/mô tả để lấy siêu dữ liệu càng sớm càng tốt rt của các proces phát triển, sau đó tạo các lớp cho nó và sử dụng 'JavaScriptSerializer.Deserialize '. HOwever, âm thanh và thực sự là một nỗi đau :) – mmix

3

Tôi đã thực sự hy vọng cho một cái gì đó sẽ phân tích WebResponse vào các lớp đại diện cho các nguồn lực SF trở lại, và có xử lý lỗi rắn - những thứ tẻ nhạt :)

Điều này tồn tại - nó được gọi là API SOAP :) Nghiêm túc, mặc dù, nếu bạn đang làm tích hợp phía máy chủ và muốn gõ các lớp được tạo ra và xử lý lỗi rắn, SOAP là pony của bạn.

3

Tôi sử dụng RestSharp để đơn giản hóa các cuộc gọi và loại bỏ các đối tượng, nhưng bạn vẫn phải xử lý tất cả các mã lỗi Salesforce. Nó cũng có một số chức năng OAuth được tích hợp sẵn, nhưng phiên bản tôi đang sử dụng (khoảng 2 tháng tuổi) không hỗ trợ OAuth 2 rất tốt. Nó vẫn là một nỗi đau, nhưng đáng giá nếu bạn đang kéo rất nhiều dữ liệu.

+0

Thú vị, tôi sẽ xem RestSharp. Tôi đã xem xét các mẫu api web asp.net nơi chúng mở rộng để truy cập twitter qua OAuth2: http://code.msdn.microsoft.com/Extending-HttpClient-with-8739f267 –

+0

Cảm ơn bạn đã liên kết, tôi chắc chắn sẽ kiểm tra mà ra. Mẫu đó có phải là OAuth2 không? Tôi chưa xem xét kỹ, nhưng tôi nhận thấy tiền tố oauth_, không được triển khai trong dịch vụ Salesforce OAuth2. – Sprockincat

0

Đây là mã mẫu sử dụng quy trình làm việc của Mật khẩu. Nó nhận mã thông báo truy cập và truy vấn API:

public static string Login() 
{ 
    string responseJsonString = string.Empty; 
    StringBuilder str = new StringBuilder(); 
    str.AppendFormat("{0}?grant_type=password&client_id={1}&client_secret={2}&username={3}&password={4}" 
        , LoginOAuthUrl, ClientID, ClientSecret, ClientUserName, ClientPassword); 
    // Request token 
    try 
    { 
     HttpWebRequest request = WebRequest.Create(str.ToString()) as HttpWebRequest; 

     if (request != null) 
     { 
      request.Method = "POST"; 
      using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) 
      { 
       if (response.StatusCode == HttpStatusCode.OK) 
       { 
        // Get the "access_token" and "instance_url" from the response. 
        // Convert the JSON response into a token object 


        // Here we get the response as a stream. 
        using (StreamReader responseStream = new StreamReader(response.GetResponseStream())) 
        { 
         responseJsonString = responseStream.ReadToEnd(); 
         // Deserialize JSON response into an Object. 
         JsonValue value = JsonValue.Parse(responseJsonString); 
         JsonObject responseObject = value as JsonObject; 
         AccessToken = (string)responseObject["access_token"]; 
         InstanceUrl = (string)responseObject["instance_url"]; 
         return "We have an access token: " + AccessToken + "\n" + "Using instance " + InstanceUrl + "\n\n"; 
        } 
       } 
      } 
     } 
     return responseJsonString; 
    } 
    catch (Exception ex) 
    { 
     throw new Exception(string.Format("Unable to login to salesforce: {0}", str), ex); 
    } 
} 

public static string Query() 
{    
    string RequestUrl = InstanceUrl + "/services/data/v28.0/query"; 
    string queryParam = "q=" + QUERY; 
    // Read the REST resources 
    string responseJsonString = HttpGet(RequestUrl, queryParam); 
    return responseJsonString; 
} 

public static string HttpGet(string URI, string Parameters) 
{ 
    // Add parameters to the URI 
    string requestUri = URI + "?" + Parameters; 
    System.Net.WebRequest req = System.Net.WebRequest.Create(requestUri); 
    req.Method = "GET"; 
    req.Headers.Add("Authorization: OAuth " + AccessToken); 

    // Do the GET request 
    System.Net.WebResponse resp = req.GetResponse(); 
    if (resp == null) return null; 
    System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream()); 
    return sr.ReadToEnd().Trim(); 
} 
7

Nếu bạn đang tìm thư viện khách hàng REST API của Salesforce, hãy xem SalesforceSharp.

Nó hỗ trợ tạo, cập nhật, xóa và truy vấn các bản ghi từ REST API.

Tạo

client.Create("Account", 
    new { Name = "name created", Description = "description created" })); 

Cập nhật

client.Update("Account", "<record id>", 
    new { Description = "description updated" })); 

Xóa

client.Delete("Account", "<ID">); 

Truy vấn

var records = client.Query<Account>("SELECT id, name, description FROM Account"); 

Ngày nay nó hỗ trợ luồng xác thực mật khẩu tên người dùng, nhưng các luồng khác (máy chủ web và tác nhân người dùng) có thể được tạo và chèn.

Các vấn đề liên quan