Skip to main content

Unofficial API wrapper for https://ask.fm

Project description

askfm-api

PyPI version PyPI status Code style: black

This aims to be a powerful Python wrapper around the undocumented ASKfm API for its mobile apps.

Currently based on reverse-engineering ASKfm Android app v4.67.1, which uses ASKfm API version 1.18. The core logic is quite complete, but I've implemented helpers (in the askfm_api.requests module) for only a small subset of API methods.

Usage

The code should be self-explanatory so I won't go into great detail here. Quick example:

from askfm_api import AskfmApi, AskfmApiError
from askfm_api import requests as r

try:
    api = AskfmApi("<secret key>", device_id="D2A6C471C4B4DA5C")
    me = api.login("username", "password")
    print(me)
    # {'uid': 'jgrdlgrd', 'fullName': 'Снег не растает', 'location': 'my empire of dirt', ...}

    qs = api.request_iter(r.fetch_questions())
    print(next(qs))
    # {'type': 'daily', 'body': 'Hi?', 'answer': None, 'author': None, 'qid': 153352, ...}

    res = api.request(
        r.post_answer(question_type="daily", question_id=153352, text="Hi there!")
    )
    print(res)
    # {'question': {...}, 'answer': {...}}
except AskfmApiError as e:
    print(e)
    # error code returned by the API, e. g. 'session_expired'

Signing key

All requests are signed using a secret key (unique per app version) that is stored inside the official app in an obfuscated manner. I don't find it ethical to publish it, so if you want to use this library, your options are:

  • extract the key by yourself
  • contact me, explain your use case and ask for the key

Related work / See also

Contributing

Any activity is welcome, but I would be especially grateful if someone wrote tests for this code.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

askfm-api-0.1.0.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

askfm_api-0.1.0-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file askfm-api-0.1.0.tar.gz.

File metadata

  • Download URL: askfm-api-0.1.0.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.1.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.1

File hashes

Hashes for askfm-api-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cafa8743542fd949e19b34f9856d9d5d5330c034eba2e8e5ac1a3043d610b30c
MD5 bf944d08fe6116de0f4bbf0ef75dd664
BLAKE2b-256 134a25625160483ec79041975f6a0233ef68bc0352dfccd50456b7b5927b180c

See more details on using hashes here.

File details

Details for the file askfm_api-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: askfm_api-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.1.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.1

File hashes

Hashes for askfm_api-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ccb936017c4c12b9f4e11ac02ebe32407a82426c0e1caee1cd147a1e0925db72
MD5 0a389fbad26f1360ff3738a51e264b69
BLAKE2b-256 1a7db4d366adccc0762defe533b1b6d50bbf07356479f0c024420d71b2ea3cf5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page