PHP 中的 OAuth 扩展加载

Posted

技术标签:

【中文标题】PHP 中的 OAuth 扩展加载【英文标题】:OAuth Extension Loading in PHP 【发布时间】:2011-08-03 22:30:26 【问题描述】:

嗨,我真的在为这个问题苦苦挣扎。

我正在使用 Google Analytics 和 Google Adwords 进行开发;我在由 Google 编写的 API Helper Libraries 中使用了两个单独的 Oauth 库。一个是 Adwords 的扩展 (oauth.so),另一个只是 Analytics 的 php 类。

当我更改 php.ini 文件以加载扩展程序时,我的 Analytics OAuth 中断。我认为这可能是类名的冲突?我曾尝试更改名称,但没有任何运气。我以为我想出了一个解决方案:使用 dl() 函数在 Adwords 相关页面上动态加载 oauth.so 扩展名(它们是单独的脚本):

dl('oauth.so');

在命令行上效果很好!但它在浏览器中不起作用。我拒绝相信以前没有人遇到过这个问题。我知道从 php.ini 加载扩展在浏览器中有效,它只是禁用了 Analytics 类。任何有这方面经验的人,我很想听听您的意见,如果您有任何建议,请随时提出!

谢谢

【问题讨论】:

【参考方案1】:

AdWords API PHP 客户端库已更新,允许使用不同的 OAuth 库:

http://code.google.com/p/google-api-adwords-php/source/detail?r=178

您甚至可以编写自己的 OAuthHandler 类,利用 Analytics 库使用的现有 OAuth 库。

【讨论】:

Eric 非常感谢你救了你的命【参考方案2】:

一直是removed from some SAPI's,或者为网络服务器切换到CGI (brr),或者尝试解决您的 Analytics PHP 类的问题。

【讨论】:

感谢您的回复,我需要在 OAuth Analytics Helper 库中重命名 15 个不同的 OAuth 相关类,更改所有这些类的名称以及实例化它们的位置将是一场噩梦。我即将使用具有扩展名的 PHP 版本设置第二台服务器,然后设置一个 REST 接口以在两者之间进行通信' 只是为了澄清你是否建议我安装 PHP 的第二个版本作为 CGI 安装? 不一定是第二个,但是 PHP 作为一个模块不能使用dl,要么在同一个网络服务器上运行(快速)CGI,要么在具有不同 .ini 的不同网络服务器上运行你喜欢的 PHP

以上是关于PHP 中的 OAuth 扩展加载的主要内容,如果未能解决你的问题,请参考以下文章

PHP 不加载 mcrypt 扩展

PHP 无法加载 php_curl.dll 扩展

oauth2-server-php-docs 概念

动态加载 php 扩展

PHP无法加载curl扩展

php-mcrypt 扩展未加载