Amlan Sengupta Ответов: 2

Невозможно получить сведения о пользователе из API yammer, если имя пользователя содержит точку


Всем Привет,

Я столкнулся со странной проблемой при доступе к пользовательским данным с помощью Yammer REST API.

Я использую следующую конечную точку для доступа к данным пользователя

https://api.yammer.com/api/v1/oauth/tokens.json?user_id=USERNAME&consumer_key=CONSUMERTOKEN

Проблема возникает, когда имя пользователя не содержит периода "".(как Джонс) API-интерфейс работает нормально и не дает никаких ошибок, но когда имя пользователя содержит точку (Иоан.ы) API-интерфейс дает ошибку HTTP 400 ошибочный запрос.

Я посылаю запрос типа

https://api.yammer.com/api/v1/oauth/tokens.json?user_id=john.s&consumer_key=CONSUMERTOKEN

Я что-то упускаю. Я использую postman для тестирования API, а также пытался с помощью кода C# получить результат, но закончил с той же проблемой (http 400 Bad request).

Что я уже пробовал:

Я использовал почтальона, чтобы проверить конечную точку API. Все нормально, когда имя пользователя не содержит точки ( " ."), но когда имя пользователя содержит точку ( " ."), ответом конечной точки является http 400 Bad Request

2 Ответов

Рейтинг:
2

Dave Kreskowiak

Этот вопрос должен быть поднят с помощью Yammer, а не какого-то стороннего веб-сайта, который его не поддерживает.


Рейтинг:
1

Graeme_Grant

Цитата:
Я посылаю запрос типа

https://api.yammer.com/api/v1/oauth/tokens.json?user_id=john.s&consumer_key=CONSUMERTOKEN

Вам нужно кодировать URL-адрес Вашей строки запроса. Пожалуйста, прочтите это: WebUtility.Метод UrlEncode (Строка) (System.Net)[^]

ОБНОВЛЕНИЕ: Глядя на документацию Yammer API, OAuth 1.0 a не поддерживается. Вам нужно использовать OAuth 2.0. REF: OAuth 2: серверный и клиентский поток * сайт разработчика Yammer[^]

Цитата:
https://www.yammer.com/oauth2/authorize?client_id=[:client_id]&response_type=code&redirect_uri=[:redirect_uri][^]


Amlan Sengupta

Уже сделал это...без всякого результата

Graeme_Grant

мы понятия не имеем, так как вы не опубликовали никакого кода... Приведенные выше примеры URL-адресов говорят об обратном...

Amlan Sengupta

Я использую почтальона для проверки конечной точки

Graeme_Grant

Опять же, мы не видим того, что видите вы. HTTP 400 Bad request-это говорит о том, что есть ошибка с вашим вызовом. Если вы используете почтальона или скрипача, то что говорит внутренний ответ на ошибку? Обычно возвращается в тело...

Amlan Sengupta

В теле ответа я получаю следующий текст
Неожиданный ''

Graeme_Grant

Это говорит вам о том, что вы неправильно кодируете строку запроса. Проверьте кодировку. покажи мне свой закодированный звонок.

Amlan Sengupta

Закодированная строка URL-адреса

https%3A%2F%2Fapi.yammer.com%2Fapi%2Fv1%2Foauth%2Ftokens.json%3Fuser_id%3john.s%26consumer_key%CONSUMERKEY

Graeme_Grant

И это не то, как вы это делаете.

Кроме того, прочтите об обновлении моей публикации решения.

Graeme_Grant

Кроме того, https://api.yammer.com/api/v1 / появляется амортизированный и замененный на https://www.yammer.com/api/v1/