Получить AuthSub текущего пользователя в Zend GData

Я использую Zend Gdata для подключения пользователей к общей электронной таблице Документов Google, которая служит бэкэндом для пользовательского интерфейса.

Мне нужно отследить, какой пользователь недавно изменил значение в определенном столбце. Я не знаю, как это сделать с помощью электронных таблиц Google (но это был бы приемлемый ответ на мой вопрос).

Есть ли способ получить имя пользователя / адрес электронной почты пользователя, который в данный момент вошел в систему через AuthSub, либо с помощью токена, возвращенного из Google, либо другим способом?

2 ответа

Предполагая, что $gspreadsheet является аутентифицированным объектом Zend_Gdata_Spreadsheets, попробуйте:

$ Gspreadsheet->getUserProfile("по умолчанию")->username-> текст;

Я только что сделал это, чтобы помочь вам.

Конечно, сначала вам нужно пройти аутентификацию в Google, и похоже, что вы уже начали это делать, поэтому я не собираюсь обрисовывать это здесь, так как я не получил этого от php. Но это не имеет значения, так как Google возвращает XML, и вам просто нужно проанализировать его, чтобы получить его.

В вашем контроллере вы можете распечатать xml, чтобы увидеть, как он возвращается. Если это не имеет смысла для вас, то все, что вам нужно знать, это то, что в документе xml первый элемент содержит электронную почту пользователей. И вы можете просто проанализировать XML, чтобы получить имя пользователя из электронной почты.

С ruby ​​я сделал это так:

xml.elements.first.text 

XML возвращается с gdata, который использует гем ruby, но он должен быть таким же, как php. Он вызывает Google со следующим кодом. На самом деле это не так, как вам нужно, чтобы вам возвращали xml, и вам просто нужно получить доступ к идентификатору первого элемента.

xml = client.get('https://www.google.com/m8/feeds/contacts/default/base?max-results=10000').to_xml
Другие вопросы по тегам