App.net 用の iOS クライアントを作成しており、プッシュ通知サーバーをセットアップしようとしています。現在、私のアプリは、ユーザーの App.net アカウント ID (数字の文字列) と APNS デバイス トークンをサーバー上の MySQL データベースに追加できます。このデータを削除することもできます。これらの 2 つのチュートリアルのコードを適応させました。
- iOS アプリ用の単純な PHP/MySQL Web サービスを作成する方法 - raywenderlich.com
- iOS 6 チュートリアルの Apple プッシュ通知サービス: パート 1/2 - raywenderlich.com
さらに、このすばらしい 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 を使用してデータベースにクエリを実行する方が簡単でしょうか? その場合、どうすればそれを行うことができますか?