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)
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)