Example #1
0
 def GET(self):
     i = web.input(code=None)
     code = None
     if i.code:
         code = i.code
         web.setcookie("fb_code", i.code)
     else:
         code = web.cookies().get("fb_code")
     if code:
         access_token = fbgraph.get_access_token(code)
         user_dict = fbgraph.get_current_user_info(access_token)
         if "error" in user_dict:
             auth_url = constants.FB_OAUTH_DIALOG_URL + urllib.urlencode(
              {"client_id": constants.FB_APP_ID,
               "redirect_uri": constants.FB_REDIRECT_URI,
               "scope": "publish_stream,offline_access"})
             return render.index(oauth_dialog_url=auth_url)
         if not shamerdb.get_user_by_fb_id(user_dict["id"]):
             shamerdb.create_user(user_dict["id"],
                                  user_dict["name"],
                                  user_dict["first_name"],
                                  user_dict["last_name"],
                                  access_token)
             return render.index(fb_id=user_dict["id"],
                                 fb_first_name=user_dict["first_name"],
                                 dayofweek_menu=get_day_of_week_menu(0),
                                 hour_menu=get_hour_menu(0))
         else:
             user_row = shamerdb.get_user_by_fb_id(user_dict["id"])
             d = user_row["Reminder_Time_Day_Of_Week"]
             h = user_row["Reminder_Time_Hour"]
             # Convert to PST
             if h < 8:
                 d = (d - 1) % 7
             h = (h - 8) % 24
             dayofweek_menu = get_day_of_week_menu(d)
             hour_menu = get_hour_menu(h)
             return render.index(fb_id=user_row["Facebook_Id"],
                                 fb_first_name=user_row["First_Name"],
                                 lastfm_pref=user_row["LastFm"],
                                 lastfm_username=user_row["LastFm_Username"],
                                 nikeplus_pref=user_row["NikePlus"],
                                 nikeplus_username=user_row["NikePlus_Username"],
                                 dayofweek_menu=dayofweek_menu,
                                 hour_menu=hour_menu)
     else:
         auth_url = constants.FB_OAUTH_DIALOG_URL + urllib.urlencode(
              {"client_id": constants.FB_APP_ID,
               "redirect_uri": constants.FB_REDIRECT_URI,
               "scope": "publish_stream,offline_access"})
         return render.index(oauth_dialog_url=auth_url)
Example #2
0
def post_to_user_feed(fb_id, message):
    user_row = shamerdb.get_user_by_fb_id(fb_id)
    if not user_row:
        return
    access_token = user_row["Access_Token"]
    data = urllib.urlencode({"access_token": access_token,
                             "message": message})
    urllib2.urlopen(constants.FB_FEED_URL, data)