sciyoshi / pyfacebook

PyFacebook
572 stars 136 forks source link

multiquery (suggestion) #40

Open tarzasai opened 14 years ago

tarzasai commented 14 years ago

in facebook/init.py line 218 (fql methods) insert this: 'multiquery': [('queries', json, []),],

then try this: fbc = Facebook("your_api_key", "")

assign session_key and secret_key

data = fbc.fql.multiquery({"query1":"select post_id, actor_id, target_id, message from stream where filter_key in (select filter_key from stream_filter where uid={your_uid} AND type='newsfeed')", "query2":"select name from user where uid in (select actor_id from #query1)",})

http://wiki.developers.facebook.com/index.php/Fql.multiquery

ljluestc commented 6 months ago
import json
import requests

class Facebook:
    def __init__(self, api_key, session_key):
        self.api_key = api_key
        self.session_key = session_key
        self.secret_key = ""

    def fql_multiquery(self, queries):
        url = "https://api.facebook.com/method/fql.multiquery"
        params = {
            "queries": json.dumps(queries),
            "format": "json",
            "api_key": self.api_key,
            "session_key": self.session_key,
            "sig": self.generate_signature()
        }
        response = requests.get(url, params=params)
        data = response.json()
        return data

    def generate_signature(self):
        # Function to generate signature, implement as needed
        pass

# Usage example
fbc = Facebook("your_api_key", "your_session_key")
# Assign session_key and secret_key as needed
data = fbc.fql_multiquery({
    "query1": "select post_id, actor_id, target_id, message from stream where filter_key in (select filter_key from stream_filter where uid={your_uid} AND type='newsfeed')",
    "query2": "select name from user where uid in (select actor_id from #query1)"
})

print(data)