Проблемы с обменом через LinkedIn ссылкой с равным знаком - PullRequest
1 голос
/ 11 января 2012

Я столкнулся с проблемой с API-интерфейсом обмена LinkedIn. Я работаю над проектом iPhone, тестирую свое приложение на iOS 4.0, 5.0. Я использовал этот проект в качестве примера:

[https://github.com/synedra/LinkedIn-OAuth-Sample-Client][1]

Я думал, что я гений после успешной реализации этого API не только для обмена обновлениями, но и со следующим форматом (как показано в [https://developer.linkedin.com/documents/share-api][1]):

<?xml version="1.0" encoding="UTF-8"?>
<share>
  <comment>83% of employers will use social media to hire: 78% LinkedIn, 55% Facebook, 45% Twitter [SF Biz Times] http://bit.ly/cCpeOD</comment>
  <content>
     <title>Survey: Social networks top hiring tool - San Francisco Business Times</title>
     <submitted-url>http://sanfrancisco.bizjournals.com/sanfrancisco/stories/2010/06/28/daily34.html</submitted-url>
     <submitted-image-url>http://images.bizjournals.com/travel/cityscapes/thumbs/sm_sanfrancisco.jpg</submitted-image-url>
  </content>
  <visibility>
     <code>anyone</code>
  </visibility>
</share>

Следуя советам и примерам, я готовил строку JSON, которую я использовал. Итак, я получил это:

{
  "visibility":
  {
        "code":"anyone"
  },
  "comment":"Asd",
  "content":
  {
        "submitted-url":"http://google.com",
        "title":"googloo",
        "submitted-image-url":"http://pikci.ru/images/img_srchttpwwwcomputerrivercomimagessamsung-chat-335-qwer.jpg"
  }
}

Ну, с этими данными внутри, это работает как шарм. обновление с изображением, кликабельным заголовком и прочим. Идеально подходит.

Затем я попытался поместить ссылку (потому что она мне действительно нужна для целей моего проекта) со знаком равенства в нем: "=", как, например, у нас есть http://www.google.md/#q=Nicolas+Steno&ct=steno12-hp&oi=ddle&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=8c5a975d815425a&biw=1920&bih=881

Что ж, если мы используем эту ссылку в submit-url и отправляем ее, LinkedIn получит ее и даже даст нам ответ. Но это не будет обновлять до нового статуса! Это огромная ошибка для моего приложения, потому что общий ресурс не будет работать, но более половины общих ссылок будут иметь знак равенства. Это третий день, когда я борюсь с этим. Я пробовал разные функции кодирования, разные ходы "умных штанов", но не получилось.

Если кто-нибудь знает, что здесь происходит, я буду очень признателен ...

1 Ответ

2 голосов
/ 11 января 2012

Когда я публикую это тело в LinkedIn, я получаю обновленный статус:

{
    "comment": "Posting from the API using JSON", 
    "content": {
         "submitted-url": 
              "http://www.google.md/#q=Nicolas+Steno&ct=steno12-hp&oi=ddle&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=8c5a975d815425a&biw=1920&bih=881"
     }, "visibility": {
         "code": "anyone"
     }
}

Однако сама ссылка не разрешается правильно. Вполне вероятно, что что-то в этом URL приводит к срабатыванию средства сокращения ссылок - мы работаем над устранением этих проблем, но в то же время вы можете использовать что-то вроде URL сокращителя URL Google:

body = {"longUrl": article['articleContent']['resolvedUrl']}
resp,content = http.request("https://www.googleapis.com/urlshortener/v1/url?key=xxx","POST",body=simplejson.dumps(body),headers={"Content-Type":"application/json"})
googleresponse = simplejson.loads(content)

... и затем передайте , что , LinkedIn. Я понимаю, что это неоптимальное решение, но пока функция share не будет исправлена ​​для обработки этих URL-адресов, она должна помочь вам.

...