def fb_open_album(request, album_id=None):

    access_token = str(request.GET.get('accessToken'))
    check_sign_in = check_access_token(access_token)
    if check_sign_in['status']:
        graph = facebook.GraphAPI(access_token)
        try:
            result = graph.request('/%s/photos' % album_id)
        except Exception, error:
            result = []
def fb_albums(request):
    result = {}
    access_token = str(request.GET.get('accessToken'))
    check_sign_in = check_access_token(access_token)
    if check_sign_in['status']:
        graph = facebook.GraphAPI(access_token)
        try:
            result = graph.request('/me/albums')
        except Exception, error:
            result = error
def fb_get_photo_and_save_to_media(request, photo_id=None):
    image = None
    message = {
        'code': 0,
        'type': 'image',
        'message': _("Image hasn't been saved"),
    }

    access_token = str(request.GET.get('accessToken'))
    check_sign_in = check_access_token(access_token)
    if check_sign_in['status']:
        graph = facebook.GraphAPI(access_token)
        try:
            result = graph.get_object(photo_id)
            album = graph.get_object(request.GET.get('album_id'))
            image_args = {
                'title': photo_id,
                'url': result['images'][0]['source'],
                'description': ''
            }
            if 'name' in album:
                image_args['title'] = album['name']
            if 'description' in album:
                image_args['description'] = album['description']

            image = save_facebook_image(image_args, request.user)
            if image:
                message['code'] = 1
        except Exception, error:
            message['code'] = 0
            message['message'] = error.message

        if message.get('code') == 1:
            return render_to_response('collection/media/add_media_return.html',
                                      {
                                          'media_obj': image,
                                          'message': message,
                                          'auth': check_sign_in
                                      },
                                      context_instance=RequestContext(request))
        else:
            return HttpResponse(json.dumps(message))
def publish_product_to_facebook_timeline(request, access_token, product):
    check_sign_in = check_access_token(access_token)
    if check_sign_in['status']:
        try:
            graph = facebook.GraphAPI(str(access_token))
            images = ProductImage.objects.filter(product=product).order_by(
                'display_order')[:1].values('none_watermark')
            image_url = ''
            if len(images) > 0:
                image_url = images[0]['none_watermark']

            if request.is_secure():
                host = 'https://%s' % request.get_host()
            else:
                host = 'http://%s' % request.get_host()

            image_full_url = '%s%s%s' % (settings.STATIC_URL, 'media/',
                                         image_url)
            result = re.match('demo-oscar', request.get_host())
            if result is not None:
                image_full_url = '%s%s%s' % (host, '/media/', image_url)

            product_object = {
                'app_id': APP_ID,
                'type': "product",
                'url': '%s%s' % (host, product.get_absolute_url()),
                'title': product.get_title().encode('utf8'),
                'image': image_full_url,
                'site_name': "Demo Oscar"
            }

            result = graph.put_object("me",
                                      APP_PATH,
                                      product=json.dumps(product_object))
        except Exception, error:
            result = error