diff --git a/oauth2.go b/oauth2.go
index 6c69c4d..7f0571e 100644
--- a/oauth2.go
+++ b/oauth2.go
@@ -25,6 +25,7 @@
 	TokenType    string `json:"token_type"`
 	RefreshToken string `json:"refresh_token"`
 	ExpiresIn    int64  `json:"expires_in"` // in seconds
+	Expires      int64  `json:"expires"`    // in seconds. Facebook returns expires_in as expires.
 	IdToken      string `json:"id_token"`
 }
 
@@ -223,6 +224,7 @@
 		resp.TokenType = vals.Get("token_type")
 		resp.RefreshToken = vals.Get("refresh_token")
 		resp.ExpiresIn, _ = strconv.ParseInt(vals.Get("expires_in"), 10, 64)
+		resp.Expires, _ = strconv.ParseInt(vals.Get("expires"), 10, 64)
 		resp.IdToken = vals.Get("id_token")
 	default:
 		if err = json.Unmarshal(body, &resp); err != nil {
@@ -239,11 +241,18 @@
 	if resp.RefreshToken == "" {
 		token.RefreshToken = v.Get("refresh_token")
 	}
-	if resp.ExpiresIn == 0 {
+	if resp.ExpiresIn == 0 || resp.Expires == 0 {
 		token.Expiry = time.Time{}
-	} else {
+	}
+	if resp.ExpiresIn > 0 {
 		token.Expiry = time.Now().Add(time.Duration(resp.ExpiresIn) * time.Second)
 	}
+	if resp.Expires > 0 {
+		// TODO(jbd): Facebook's OAuth2 implementation is broken and
+		// returns expires_in field in expires. Remove the fallback to expires,
+		// when Facebook fixes their implementation.
+		token.Expiry = time.Now().Add(time.Duration(resp.Expires) * time.Second)
+	}
 	if resp.IdToken != "" {
 		if token.Extra == nil {
 			token.Extra = make(map[string]string)
