4

App.net 用の iOS クライアントを作成しており、プッシュ通知サーバーをセットアップしようとしています。現在、私のアプリは、ユーザーの App.net アカウント ID (数字の文字列) と APNS デバイス トークンをサーバー上の MySQL データベースに追加できます。このデータを削除することもできます。これらの 2 つのチュートリアルのコードを適応させました。

さらに、このすばらしい python スクリプトを適応させて、App.net の App Stream API をリッスンしました。

私のMySQLの知識と同様に、私のPythonは恐ろしいものです。私がやろうとしているのは、通知する必要があるアカウントの APNS デバイス トークンにアクセスすることです。私のデータベース テーブルには、各エントリに 2 つのフィールド/列があり、1 つは user_id 用で、もう 1 つは device_token 用です。専門用語がよくわからないので、わかる方教えてください。

私はpeeweeを使用してデータベースから読み取ろうとしましたが、頭を悩ませています。これは、プレースホルダー付きのテスト スクリプトuser_idです。

import logging
from pprint import pprint

import peewee
from peewee import *

db = peewee.MySQLDatabase("...", host="localhost", user="...", passwd="...")

class MySQLModel(peewee.Model):
    class Meta:
        database = db

class Active_Users(MySQLModel):
    user_id = peewee.CharField(primary_key=True)
    device_token = peewee.CharField()

db.connect()

# This is the placeholder user_id
userID = '1234' 

token = Active_Users.select().where(Active_Users.user_id == userID)
pprint(token)

これにより、次のように出力されます。

<class '__main__.User'> SELECT t1.`id`, t1.`user_id`, t1.`device_token` FROM `user` AS t1 WHERE (t1.`user_id` = %s) [u'1234']

コードがそれを明確にしなかった場合、データベースにuser_id' 1234' の行を照会しようとしており、同じ行の を変数に格納したいとdevice_token考えています (これもおそらく間違った用語です)。後でスクリプトでプッシュ通知を送信するときに使用します。

device_token を正しく返すにはどうすればよいですか? また、peewee をやめて、単に python-mysqldb を使用してデータベースにクエリを実行する方が簡単でしょうか? その場合、どうすればそれを行うことができますか?

4

1 に答える 1