Facebook用于到期access_token的日期格式是什么?

时间:2012-03-30 15:44:37

标签: .net facebook

我正在努力确保我正确转换为DateTime,使用.Net服务进行连接,希望将过期存储在数据库中供以后使用。

4 个答案:

答案 0 :(得分:6)

如果您正在谈论使用access_token返回的expires参数,那么它将在到期之前的几秒钟。

待办事项

DateTime expires = DateTime.UtcNow;
expires.AddSeconds(seconds);

并且有你的失效日期。

答案 1 :(得分:4)

看起来事情又变了。将返回的到期值(expires_at)乘以1000以获取纪元。无论如何,在JavaScript中,到期时间可以通过以下方式计算:

$this->db->select('*');
$this->db->from('table');
$this->db->where('condition1 =',' condition');
$where = '(date1 = "date" OR renewal1 = "renewal")';// you can use your condition like this
$this->db->where($where);
$q = $this->db->get();
$results = $q->result();

答案 2 :(得分:2)

对于以下端点,返回的到期值是从NOW开始的秒数。因此,将这些秒数添加到CURRENT时间,您将获得到期日期。

端点: https://graph.facebook.com/oauth/access_token?client_id=# {APPID}&安培; client_secret =#{秘密}&安培; grant_type = fb_exchange_token&安培; fb_exchange_token =#{令牌}

答案 3 :(得分:1)

Facebook提供的到期值是UTC差异。如果将其添加到当前UTC,则您具有到期值。整蛊吧?为什么他们不只是给你到期的UTC就超出了我。

如果你想在javascript中获得真正的价值,你需要知道过期值缺少毫秒。因此,为了获得真正的到期日期,您需要乘以1000以获得毫秒数,然后将其添加到请求令牌时的UTC日期值,然后用该值新建一个日期。

http://jsfiddle.net/donrolling/ng331yta/1/

var exampleExpiration = 5181776 * 1000;//have to add milliseconds in
var now = new Date().getTime();
alert(new Date(now + exampleExpiration));