Я нахожусь в процессе настройки поддержки OAuth на общем сервере. Библиотека PHP OAuth на стороне сервера, которую я пытаюсь установить, такова:
http://code.google.com/p/oauth-php/downloads/list
И я следую примечаниям по установке, найденным здесь:
http://code.google.com/p/oauth-php/wiki/ConsumerHowTo
В примечаниях был совет использовать сценарий SQL, найденный в установочном пакете, для настройки таблиц и баз данных для вас. Когда я попытался выполнить скрипт с помощью функции импорта (SQL), найденной в phpMyAdmin, я получил ошибку «Слишком длинный ключ» в одной из таблиц. Другими словами, я столкнулся с ограничением максимальной длины ключа при использовании таблиц MySQL/InnoDB.
Чтобы обойти эту проблему, я заменил все экземпляры «charset=utf8» на «charset=latin1», поскольку utf8 требует 3 байта на символ, а latin1 — 1 байт на символ. Сценарий выполнился нормально, и все таблицы были созданы правильно.
Насколько я вижу, все поля, используемые в таблицах, не требуют поддержки многобайтовых международных символов. Единственный способ, которым я мог бы видеть проблему, — это если одна из подключенных служб OAuth, к которым я получаю доступ, использует международные символы в своем потребительском ключе или секрете, и я до сих пор не сталкивался с такой ситуацией.
Может ли кто-нибудь сказать мне, укусит ли меня этот обходной путь в зад в любое время и где это может быть? Кроме того, если у кого-то есть лучшее решение для устранения проблемы «слишком длинного ключа» без ущерба для использования набора символов utf8, я хотел бы знать об этом.