Кажется, что либо ваш код или код библиотеки решил бежать маркер (возможно, через addslashes()
) в какой-то момент во время выполнения скрипта. Это не проблема с php как таковой, а проблема с реализацией.
UPDATE: Похоже, библиотека звонит json_encode()
на результат, который ускользает слэш по умолчанию. Согласно другому ответу SO (Why is json_encode adding backslashes?), это делается для того, чтобы избежать проблем при встраивании JSON в HTML.
Теперь в вышеупомянутом ответе также упоминается, что «\ /» и «/» следует рассматривать как эквивалентные синтаксическими анализаторами JSON, поэтому я, к сожалению, не уверен, почему Google Apps решает нанести вам 500 штук в этом случае.
Таким образом, в заключении можно сказать, что
а) «Это проблема с тем, как РНР json_decode()
был разработан, чтобы работать. Он не должен возвращать сбежавший слэш по умолчанию.»
b) «Это проблема с сервисом API Google Apps. Он должен рассматривать« \/»и«/»как эквивалент данных JSON».
c) «Это проблема с библиотекой API Google Apps для PHP. Учитывая, что я отправляю refresh()
те же неизменные данные, которые были возвращены getRefreshToken()
, он должен выполнить необходимые мутации данных, чтобы сделать их действительными для вызов API. "
К сожалению, это попадает на территорию с вопросом о мнении, поэтому я собираюсь оставить ее на этом.
Поскольку я повторяю то, что прямо возвращается из вызова API Google, я думаю, что это должно быть в их библиотечном коде. – svenyonson
Правильно, Свен. Взгляните на мой обновленный ответ. – joadha