【问题标题】:PHP OAUTH class apiPHP OAUTH 类 api
【发布时间】:2012-06-28 18:55:05
【问题描述】:

我在 PHP.net 中使用 OAuth::fetch() 示例 (Outh code。我使用的 cod 是

<?PHP
try{
$oauth = new OAuth("consumer_key","consumer_secret",OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_AUTHORIZATION);
$oauth->setToken("access_token","access_token_secret");

$oauth->fetch("http://photos.example.net/photo?file=vacation.jpg");

$response_info = $oauth->getLastResponseInfo();
header("Content-Type: {$response_info["content_type"]}");
echo $oauth->getLastResponse();
} catch(OAuthException $E) {
 echo "Exception caught!\n";
}?>

错误信息是

致命错误:在第 3 行的 C:\wamp\www\Jesvin\MyTest1\test1.php 中找不到类“OAuth”

【问题讨论】:

    标签: php api authentication oauth


    【解决方案1】:

    您没有可用的 OAuth 类。它是一个 php 扩展而不是核心包的一部分,您需要手动将其安装到 wamp 中。首先要做的是检查扩展是否可用但未加载。

    您的 php 扩展库将类似于 /path/to/wamp/php/ext(我不使用 wamp,因此您必须在 Google 上搜索路径或在文件系统中查找自己)。

    如果你看到一个 oauth 扩展,你可以跳过安装 oauth,如果你不需要,你需要一个预编译的 dll,看这里:http://downloads.php.net/pierre/ 并搜索“oauth”,有 2 个(不确定你是哪一个应该使用,所以选择一个,如果它不起作用尝试另一个)。

    下载它并将 dll 与其他 php 扩展一起粘贴到您的扩展目录中。

    然后找到您的 php.ini 文件(您可以使用带有&lt;?php phpinfo; ?&gt; 的文件并将其加载到浏览器中以查看 php.ini 的位置)。查找定义扩展名的位置并取消注释或将此行添加到您的 php.ini 文件中

    extension=php_oauth.dll

    确保上述代码中的 dll 名称与您下载并安装到扩展文件夹中的名称相同。还要确保在这一行的开头有 NO 分号。

    应该差不多了。希望 php 能很好地加载 DLL 并且它会工作。使用预编译的 dll 并不总是有效,但在这种情况下它有望有效。

    【讨论】:

    • 如果您无权在主机服务器中安装任何东西,还有什么选择吗?例如运行 OAuth 的外部库?
    • @samyb8 有一些纯 PHP 实现只是 PHP 类,但大多数是 oAuth1 而不是您可能想要的 oAuth2。一旦“官方”扩展稳定等,大多数 oAuth 类就停止维护。但是你总是可以尝试谷歌,我不能保证代码,因为我从未使用过它,但我发现了这个:github.com/fkooman/php-oauth-client
    猜你喜欢
    • 2016-07-31
    • 2012-12-10
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 2019-12-04
    相关资源
    最近更新 更多