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.1.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

askfm_api-0.1.1-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: askfm-api-0.1.1.tar.gz
  • Upload date:
  • Size: 5.6 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.1.tar.gz
Algorithm Hash digest
SHA256 cb0d9c4a1450b423fe12e62799b2582b5c0887157c81dc073a259c3aa33a225f
MD5 f1a5c241136a212f93cd38906a8306ba
BLAKE2b-256 c0ef83b02a3c9f0cd4792fd9a1459aee69c0e2addc3252f0d1d945c4f782b549

See more details on using hashes here.

File details

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

File metadata

  • Download URL: askfm_api-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.0 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8bbb95165f836c380b9d8df9e5ce33d27e0e41f5e3bb09ccd0b83e5534e503f0
MD5 1d44011fa95202e6477cf951a14a52bc
BLAKE2b-256 66ecba6fba4a56876d103321f1ae7985487cf981afe8e20681fe617c42b35cbd

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