我是php的初学者。并尝试与Oauth合作。但这不是重点。重点是:我有一个Oauth类,有四个函数可以返回这样的URL:
class tOauth{
......
function accessTokenURL() {
return 'http://api.twitter.com/oauth/access_token';
}
function authenticateURL() {
return 'http://api.twitter.com/oauth/authenticate';
}
......
}
这很好用。但现在我希望这些功能是通用的,这样它们适用于任何社交网站。这意味着我必须通过danymically传递所有网址并在运行时返回它们。所以我提出这样的事情:
class tOauth{
....
public $accessTokenURL,$authenticateURL;
function accessTokenURL() {
return $this->accessTokenURL;
}
function authenticateURL() {
return $this->authenticateURL;
}
....
}
在运行时我称之为:
$oauth=new Oauth(key,secret);
$oauth->accessTokenURL='http://www.facebook.com/oauth/access_token';
$oauth->authenticateURL='http://www.facebook.com/oauth/authenticate';
$token=$oauth->requestToken($someurl);
但出于某种原因,这似乎不起作用。我没有改变任何其他东西。似乎我无法在日常情况下分配这样的变量。有没有人知道可能是什么问题?感谢任何提示。
更新:可以在此处找到整个示例代码:https://github.com/abraham/twitteroauth/blob/master/twitteroauth/twitteroauth.php
答案 0 :(得分:0)
更新:您的代码未显示有关requestToken()
方法的任何详细信息。以下解决方案可让您访问令牌。
您根据代码阅读了未设置的内容。用
替换最后一行$token=$oauth->accessToken($someurl);
它适用于accessToken
。
还要考虑inheritance,它允许您在tOauth
类中存储公共指令,而服务特定的指令在从其继承的单独类中存储(例如。Twitter_Oauth
可以从您的{继承] {1}}类,并且从一开始就将特定URL设置为默认值,而无需每次都设置它们。
答案 1 :(得分:0)
为什么不为类变量编写getter和setter方法?
您已经拥有返回accessTokenURL和authentificateURL的方法。
我相信这可行:
class tOauth{
....
public $accessTokenURL,$authenticateURL;
function accessTokenURL() {
return $this->accessTokenURL;
}
function authenticateURL() {
return $this->authenticateURL;
}
function set_accessTokenURL($token)
{
$this->accessTokenURL = $token;
}
function set_authenticateTokenURL($token)
{
$this->authenticateTokenURL = $token;
}
....
}