
    qh                     L    S r SSKrSSKJrJr   " S S\5      r " S S\5      rg)	zm
Fitbit OAuth backend, docs at:
    https://python-social-auth.readthedocs.io/en/latest/backends/fitbit.html
    N   )
BaseOAuth1
BaseOAuth2c                   @    \ rS rSrSrSrSrSrSrSr	SS	/r
S
 rS rSrg)FitbitOAuth1   z$Fitbit OAuth1 authentication backendfitbitz&https://www.fitbit.com/oauth/authorizez*https://api.fitbit.com/oauth/request_tokenz)https://api.fitbit.com/oauth/access_token	encodedIdr
   iddisplayNameusernamec                 *    UR                  S5      SS.$ z'Return user details from Fitbit accountr    )r   emailgetselfresponses     M/var/www/html/env/lib/python3.13/site-packages/social_core/backends/fitbit.pyget_user_detailsFitbitOAuth1.get_user_details       $LL7"EE    c                 F    U R                  SU R                  U5      S9S   $ )Loads user data from service,https://api.fitbit.com/1/user/-/profile.json)authuser)get_json
oauth_auth)r   access_tokenargskwargss       r   	user_dataFitbitOAuth1.user_data   s1    }}:.  
  	r    N)__name__
__module____qualname____firstlineno____doc__nameAUTHORIZATION_URLREQUEST_TOKEN_URLACCESS_TOKEN_URLID_KEY
EXTRA_DATAr   r(   __static_attributes__r*   r   r   r   r      s7    .D@DBF%'BCJFr   r   c                   P    \ rS rSrSrSrSrSrSrS/r	Sr
Sr/ S	QrS
 rS rS rSrg)FitbitOAuth2!   z$Fitbit OAuth2 authentication backendr	   z'https://www.fitbit.com/oauth2/authorizez#https://api.fitbit.com/oauth2/tokenprofiler
   F))
expires_inexpires)refresh_tokenr=   Tr   r   c                 *    UR                  S5      SS.$ r   r   r   s     r   r   FitbitOAuth2.get_user_details2   r   r   c                 6    SSU 30nU R                  SUS9S   $ )r   AuthorizationzBearer r    )headersr"   )r#   )r   r%   r&   r'   auth_headers        r   r(   FitbitOAuth2.user_data6   s6    &',(@A}}:K  

 	r   c                     SR                   " U R                  5       6 n[        R                  " UR	                  5       5      nUR                  5       nSSU 30$ )Nz{}:{}rA   zBasic )formatget_key_and_secretbase64urlsafe_b64encodeencodedecode)r   tokenss     r   auth_headersFitbitOAuth2.auth_headers=   sL    !8!8!:;))&--/:6&!233r   r*   N)r+   r,   r-   r.   r/   r0   r1   r3   REFRESH_TOKEN_URLDEFAULT_SCOPEr4   REDIRECT_STATEr5   r   r(   rM   r6   r*   r   r   r8   r8   !   sD    .DA<=KMFNJF4r   r8   )r/   rH   oauthr   r   r   r8   r*   r   r   <module>rS      s*   
  ): , 4:  4r   