从对象 Facebook API (PHP) 获取受保护的值
Posted
技术标签:
【中文标题】从对象 Facebook API (PHP) 获取受保护的值【英文标题】:Getting protected values from object Facebook API (PHP) 【发布时间】:2018-03-12 23:19:28 【问题描述】:如何从 FB 在其 API 中返回的下面的对象中获取受保护的值?
Facebook\Authentication\AccessToken Object
(
[value:protected] => AAAAAAA
[expiresAt:protected] => DateTime Object
(
[date] => 2017-11-30 19:27:26.000000
[timezone_type] => 3
[timezone] => UTC
)
)
我试过这样:$var->value
或 $var->expiresAt->date
但不起作用。
【问题讨论】:
这是一个具有类定义的对象......如果有正当理由可以访问这些属性,该类将提供获取这些属性的方法 【参考方案1】:Facebook API 封装了它的属性,因此您需要使用 getter。例如,您可以使用 getter 获取 expiresAt
属性:
var_dump($accessToken->getExpiresAt()->format("d/m/Y H:i:s")); // string(19) "30/11/2017 16:43:11"
value 和其他属性也是如此。
【讨论】:
我实际上不需要重新格式化,有没有办法按原样获取expiresAt
?那么value
又名呢。令牌?我怎么得到它?
只需删除format()
调用,$expires = $accessToken->getExpiresAt()
。对于值,$value = $accessToken->getValue();
我厌倦了$accessToken->getExpiresAt()
没有格式化,因为我不需要格式化它。而且它不起作用。
我不太明白你,当你说“原样”时,你的意思是你需要 DateTime
实例,还是你需要像示例输出中那样格式化的日期?因为只获取getExpiresAt()
会给您一个DateTime
实例,并且您需要对其进行格式化以获取字符串。
$accessToken->getValue()
有效。 $accessToken->getExpiresAt()
没有格式部分就无法工作。我不需要重新格式化任何内容,因为它会直接进入数据库。以上是关于从对象 Facebook API (PHP) 获取受保护的值的主要内容,如果未能解决你的问题,请参考以下文章