2013-07-10 6 views
0

Я пытаюсь опубликовать ссылку на LinkedIn с использованием OAuth v2 - у меня есть авторизация правильно и у вас есть соответствующие ключи доступа.LinkedIn Share API с использованием RestClient

Проводка по: https://api.linkedin.com/v1/people/~/shares?oauth2_access_token=(access лексема)

Поделиться XML:

> <?xml version="1.0" encoding="UTF-8"?> <share> <content> <title>White 
> Cobalt Ltd</title> <description>Test</description> 
> <submitted-url>http://bit.ly/LpNpQH</submitted-url> </content> 
> <visibility> <code>anyone</code> </visibility> </share> 

Код для Post (C#):

RestClient oRC = new RestClient(); 
RestRequest oRequest = new RestRequest(sURL, Method.POST); 
oRequest.AddHeader("Content-Type", "application/xml"); 
oRequest.AddHeader("x-li-format", "xml"); 
oRequest.RequestFormat = DataFormat.Xml; 
oRequest.AddBody(xml); 

RestResponse oResponse = (RestResponse)oRC.Execute(oRequest); 
if ((oResponse.ResponseStatus == ResponseStatus.Completed) && (oResponse.StatusCode == HttpStatusCode.Accepted)) 
{ 
... success 
} 

Когда я использую API консоли (https://apigee.com/console/linkedin) он отлично работает , но когда я пытаюсь запустить его через код (который, насколько я могу судить, делает то же самое), я получаю следующую ошибку:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<error> 
<status>400</status> 
<timestamp>1373465292361</timestamp> 
<request-id>FQEJFQOL6U</request-id> 
<error-code>0</error-code> 
<message>Couldn't parse share document: error: The document is not a [email protected]://api.linkedin.com/v1: document element local name mismatch expected share got String</message> 
</error> 

Помощь!

ответ

0

Я полагаю, что я нашел решение - по какой-то причине LinkedIn API не нравится функция RestClient:

oRequest.AddBody(xml); 

Когда я заменил его:

oRequest.AddParameter("application/xml", sbXML.ToString(), ParameterType.RequestBody); 

код начал работать правильно - нужно добавлять данные Post несколько иначе.