从对象 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) 获取受保护的值的主要内容,如果未能解决你的问题,请参考以下文章

从 Facebook Graph API 获取访问令牌

从 facebook graph API 获取全尺寸图片

如何使用Facebook API从Latitude / Longitude获取城市的地方ID

通过图形 api 从 php 发布 Facebook 帖子

Facebook 营销 API、获取见解字段和活动对象字段

PHP - 仅使用 Facebook 图表从 Facebook 页面获取帖子数据