トップページphp
1001コメント298KB

Google AppEngine 3アプ目

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/02/25(木) 09:32:03ID:5mUqVSik
Google App Engine
http://code.google.com/appengine/

■過去スレ
Google App Engine
http://pc11.2ch.net/test/read.cgi/php/1207754942/
Google App Engine 2アプ目
http://pc11.2ch.net/test/read.cgi/php/1243654802/

■リンク集
はてなブックマーク
http://b.hatena.ne.jp/t/gae
http://b.hatena.ne.jp/t/Google%20App%20Engine
Delicious
http://delicious.com/popular/gae
http://delicious.com/popular/googleappengine

■参考サイト
App Engine ギャラリー
http://appgallery.appspot.com/
ドキュメント
http://code.google.com/appengine/docs/python/overview.html
0771nobodyさん2011/01/15(土) 05:57:02ID:???
>>770
ありがとうこざいます
明日またやってみます > <
0772nobodyさん2011/01/17(月) 01:40:56ID:???
ttp://codepad.org/Fef3UIgB
メールにかかれたURLのページをfetchして返信するappを作りましたが
http://ja.wikipedia.org/wiki/%E7%89%B9%E5%88%A5:%E9%95%B7%E3%81%84%E3%83%9A%E3%83%BC%E3%82%B8
などのサイズの大きいページを指定するとエラー↓になります。
The API call mail.Send() required more quota than is available.
一体何のquotaが超えているのでしょうか?

ttp://code.google.com/intl/en/appengine/docs/python/mail/overview.html
を見ると、メールサイズの制限は10MBなので、大丈夫なはずです。
また、このエラーの後でも普通サイズのページを指定すると正常に動作します。
0773nobodyさん2011/01/17(月) 04:00:43ID:???
administratorから出してるか
0774nobodyさん2011/01/17(月) 23:22:32ID:???
出しています
0775nobodyさん2011/01/18(火) 12:56:40ID:???
datastoreのエンティティが更新された履歴って残せますか?
0776nobodyさん2011/01/18(火) 13:46:53ID:???
ログに書き出すか datastore にログ用 entity 作って自分で記録汁
だけど dashboard から更新したらやっぱり記録されない
0777nobodyさん2011/01/18(火) 17:36:02ID:???
了解 bigtableってプロパティレベルで履歴が残るって解説読んだことがあった気がしたけど
datastoreではできないんですね
ありがとうございました
0778nobodyさん2011/01/23(日) 12:57:55ID:???
オライリーの本キタ━━━━(゚∀゚)━━━━!!
0779nobodyさん2011/01/23(日) 19:01:22ID:???
>>772
http://code.google.com/intl/ja/appengine/docs/quotas.html
送信されたメッセージ本文のデータ 340 KB/分
0780nobodyさん2011/01/23(日) 21:22:35ID:/P06sEKg
オライリーの「プログラミング Google App Engine」のサンプルコードってどこにあるの?

本にはここを見ろと書いてあるんだが見つからない
http://www.oreilly.co.jp/books/9784873114750/
0781nobodyさん2011/01/23(日) 22:58:55ID:???
>>780
何ページに書いてある?
俺の予想は海外のオライリーサイトだと思うよ
0782nobodyさん2011/01/24(月) 12:56:51ID:???
pytz使ってる人いませんか?
GAE用に最適化されてるgae-pytzを使おうと思ったんですが
pytz本体のバージョンがpytz 2010oなのにgae-pytzが2010hで更新止まってるんですが
何か問題あったんでしょうか?
0783nobodyさん2011/01/24(月) 21:08:22ID:???
>>778
おらおらおらおらオラオラオラオラオラオラオラオラオラオラオライリー
0784nobodyさん2011/01/26(水) 12:37:51ID:???
>>780
そのページ → 原著のページ → 著者のページ
に行けばサンプルコードがあるよ。
0785nobodyさん2011/01/30(日) 13:22:29ID:???
slim3使ってるんですが、同時にデータ書き込みがあった場合ってどうなるんでしょうか?
エンティティのロックってのがいまいち理解できない・・。
0786nobodyさん2011/01/30(日) 17:10:24ID:???
重複スレができたので、こっちはpython、あっちがjavaということになってる
0787nobodyさん2011/01/30(日) 17:14:54ID:???
>>786
ありがとう
0788nobodyさん2011/01/31(月) 12:55:21ID:???
600件くらいのCSVデータをdatastoreにアップロードしたいのですが、
中にリストプロパティに入れたいデータがあるんです。
http://code.google.com/intl/ja/appengine/docs/python/tools/uploadingdata.html
どうやったらいいんでしょうか?
ヒントだけでもお願いします。
0789nobodyさん2011/02/01(火) 13:23:47ID:???
http://groups.google.com/group/google-app-engine-japan/web/tips-wiki
0790nobodyさん2011/02/05(土) 12:13:19ID:???
>>789
なるほど、そういうことですね。
0791nobodyさん2011/02/05(土) 17:27:35ID:???
{% for %}にジェネレータ渡しちゃいけないんだな
気付けば当たり前だけど嵌ったので書いとく

==*.py==
xs=(1,2,3,4,5)
template_values = {
'xs1': ( x*x for x in xs ),
'xs2': ( x*x for x in xs ),
}

==テンプレ1==
{% for x in xs1 %}
{{x}},
{% endfor %}
{% for x in xs1 %}
{{x}},
{% endfor %}

==テンプレ2==
{% for x in xs1 %}
{{x}},
{% endfor %}
{% for x in xs2 %}
{{x}},
{% endfor %}

テンプレ1 => 1,4,9,16,25,
テンプレ2 => 1,4,9,16,25,1,4,9,16,25
0792sage2011/02/06(日) 09:32:44ID:CTIgjDfj
>>680
同じ症状で色々と試したら、解決しました。
File "D:\app\dev\Python25\lib\os.py", line 430, in __setitem__
putenv(key, item)
このラインを
#putenv(key, item)
のようにコメントアウトしたらおkでした。
次のラインに
self.data[key.upper()] = item
がありますし、__getitem__は、
self.data[key.upper()]
を返しますので、問題ありません。
何処にあるかわかりませんが、putenvにバグがあると思います。というか、むしろ必要性を感じません。
他にPythonの開発してたら、その時は元に戻したほうがいいかもしれません。

ちなみに、os.py:410に、
# Fake unsetenv() for Windows
# not sure about os2 here but
# I'm guessing they are the same.
などというコメントがありますから、いい加減さが目だちます…orz

誰かの参考になれば幸いです。
0793nobodyさん2011/02/06(日) 09:33:51ID:???
うわ、上げてしまった…
スマソ…orz
0794nobodyさん2011/02/06(日) 09:39:36ID:???
しかも、>>696とか…
死にたい…
0795nobodyさん2011/02/06(日) 10:39:03ID:???
>>792

>>680じゃないけど

http://localhost:8088/日本語
アウト
http://localhost:8088/日本語.html
OK
http://localhost:8088/日本語/temp.html
OK
コメントアウトしてもしなくても症状変わりません。
0796nobodyさん2011/02/06(日) 11:33:35ID:???
>>795
GAEサーバー再起動しました?
あと、コールスタックは>>680と同じですか?
コメントアウトしたなら、OSErrorのコールスタックも変わってくるはずです。
0797nobodyさん2011/02/06(日) 13:15:58ID:???
>>796
GAEサーバー再起動したら正常に動作いたしました。
知識不足のせいでお手数をおかけしました。

日本語URLを扱っていてたまたま最後は半角で終わるため
直接は問題は出ていませんでしたが、これですっきりしました。
ありがとうございました。
0798nobodyさん2011/02/06(日) 17:37:55ID:???
GAEでPHPを使う方法がわかりません
モジュールとしてスクリプトを書いていいんですか?
それともCGIのように1行目に実行ファイルへのパスを書くんですか?
0799nobodyさん2011/02/06(日) 17:41:11ID:???
>>798
AmazonEC2なら簡単に使えますよ
0800nobodyさん2011/02/06(日) 17:43:02ID:???
EC2って有料でしょ?有料はいりませんよ?
0801nobodyさん2011/02/06(日) 18:55:40ID:???
つまんないから帰ってくれないか
0802nobodyさん2011/02/06(日) 20:16:57ID:???
質問に対して人をおちょっくって来たほうが悪い
0803nobodyさん2011/02/06(日) 20:22:45ID:???
>>798
http://codezine.jp/article/detail/3948
正直言って、無駄な労力だと思うので、他に行った方がいいと思う。
0804nobodyさん2011/02/06(日) 20:45:26ID:???
pythonでHPって持てるの?ここ
0805nobodyさん2011/02/07(月) 00:02:52ID:???
>>804
http://hp.com/
0806nobodyさん2011/02/07(月) 02:43:34ID:???
著しくレベル低いなw
0807nobodyさん2011/02/07(月) 03:02:24ID:???
GAEは糞
何度でも言うよ
GAEは糞
0808nobodyさん2011/02/07(月) 03:25:00ID:???
どのへんが?
0809nobodyさん2011/02/07(月) 17:39:36ID:qvm2E2Ff
アカウント取得しまくったらBANされたりするかな?
0810nobodyさん2011/02/09(水) 18:15:53ID:???
それは使い方に問題があるだろw
0811nobodyさん2011/02/10(木) 04:11:24ID:J9bT3WK+
混雑してくるとやたら重くなるんだけど、そういうもんなの?自動でスケーリングしてくれるんじゃないの?
0812nobodyさん2011/02/10(木) 10:13:54ID:???
GAEの癖を理解してコードを書かないと性能を発揮できない。
特に書き込み。
0813nobodyさん2011/02/10(木) 11:34:23ID:UzZbws4D
blobstore で保存された画像のURLって静的に保証されたものなんですかね?
datastoreにblobkeyだけ保存して、毎回取り出すために
blob_info = blobstore.BlobInfo.get(blob_key)
self.send_blob(blob_info)
しないといけないんですね?
そのリクエストを受け付けるURLにblob_keyを混ぜるとしたら、〜.jpgみたいなURL作るためには
/blob_key/temp.jpg
みたいなURL書き換えでキーを渡さないといけないんでしょうか?

例えば外部からbolbstore上の画像をダイレクトで参照できるURLってないのかな?

なんか勘違いしてるんですかね?
0814nobodyさん2011/02/10(木) 12:10:30ID:???
>>813です
get_serving_url
これ使えばいいみたいですね。調べてみます。
0815nobodyさん2011/02/10(木) 14:39:53ID:???
キーで使われる文字ってBase64で使われる文字だけだと思ってたんだけど
さっきみたら-(マイナス)が使われてたんだけど。
0816nobodyさん2011/02/10(木) 23:39:29ID:???
それがどうかしましたか(棒)
0817nobodyさん2011/02/11(金) 14:36:01ID:???
最近slim3を導入しました。今までトップページを/main.jspにしていたのですが/に変えたいです。
/main.jspへのアクセスを/に転送したいのですがどうしたらよいでしょうか?
AppRouterに設定(isStaticもちゃんとオーバーライド)しても、web.xmlに設定しても403になってしまいます。
0818nobodyさん2011/02/12(土) 01:51:23ID:???
>>817
javaの方のスレに誘導でいいのだろうか

Google App Engine 3アプ目
http://hibari.2ch.net/test/read.cgi/php/1267094290/
0819nobodyさん2011/02/12(土) 12:18:28ID:???
逝ってらっしゃいませご主人さま
0820nobodyさん2011/02/12(土) 12:31:53ID:???
class data(db.model)
a=db.IntegerProperty()
b=db.IntegerProperty()

datas = db.GqlQuery (query_str)
for data in datas:
data["ab"]=data.a+data.b

'data' object does not support item assignment

db.modelオブジェクトに読み出しあとで列を追加すようとするとエラーが出ます。
Djangoに渡す前にどうしても列を加工したり追加したい場合、どうしたらいいでしょうか?
dictにコピー?
0821nobodyさん2011/02/12(土) 12:53:08ID:???
class data(db.model)
a=db.IntegerProperty()
b=db.IntegerProperty()
ab=db.IntegerProperty()

datas = db.GqlQuery (query_str)
for data in datas:
data.ab=data.a+data.b
0822nobodyさん2011/02/12(土) 13:44:58ID:???
なるほど!
0823nobodyさん2011/02/12(土) 13:53:58ID:???
webapp.Templateを使うときはDjangoバージョンの警告を出さないでほしいな
とりあえずJinja2に移行中
0824nobodyさん2011/02/12(土) 14:02:46ID:???
>>818
誘導ありがとうございます
0825nobodyさん2011/02/12(土) 22:43:25ID:???
ロードマップにPython 2.7のサポートとかあるけど前からあったっけ?
http://code.google.com/appengine/docs/roadmap.html
0826nobodyさん2011/02/13(日) 03:31:54ID:???
>>825
2.6スキップかよ
debianがちょっと前が2.5で今が2.6で両方ダメでメンドクセー
0827nobodyさん2011/02/13(日) 03:44:12ID:???
>>825
こんなのあったんだ。さんくす。
そのいちばん上に、
* SSL access on non-appspot.com domains
とあるんだけど、これって可能なの?SSLってドメインごとにグローバルIPがひとつ必要なんじゃないっけ?
あと2番目が
* Full-text Search over Datastore
なんだけど、いつになったら実装してくれるのだろうか。
0828nobodyさん2011/02/13(日) 04:14:25ID:???
>SSLってドメインごとにグローバルIPがひとつ必要なんじゃないっけ?

それは鯖がApacheの場合の話じゃなくて?
0829nobodyさん2011/02/13(日) 05:01:21ID:???
apacheでも大丈夫だよ。
ブラウザも最近のはたいてい対応しているが、
win xpのIEは7でも駄目なので、そこがネック。
0830nobodyさん2011/02/13(日) 12:24:24ID:???
>>829
これってこれのことでしょうか。
ttp://builder.japan.zdnet.com/news/story/0,3800079086,20402262,00.htm
こんなのあったんだ。
0831nobodyさん2011/02/13(日) 13:40:25ID:???
jsonengineっていうのどうなのか試そうと思ったがデプロイできない・・・
0832nobodyさん2011/02/13(日) 16:45:30ID:???
GQLでORDER BY foo ASCするとfoo=Noneが先頭にきちゃってうざいんだけど・・・
他のDBでもこういう仕様だっけ?

後ろに来てもらうことってできまするか?
0833nobodyさん2011/02/13(日) 18:40:02ID:???
むり
0834nobodyさん2011/02/13(日) 18:49:14ID:mo0rSdkS
なんでGAE使うひとってみんな他のDBと比べたがるんだろう
「あっちでは出来たのに」ってのが多すぎるわ
0835nobodyさん2011/02/13(日) 19:21:01ID:???
まぁGQLって名乗っちゃってるしね
Goくらい、何かを連想させない命名にしておけば
0836nobodyさん2011/02/13(日) 20:44:19ID:???
>>832
foo > NULLとか出来なかった?(または"foo > :1", None)
0837nobodyさん2011/02/13(日) 21:12:14ID:???
google optimized language = go-lang
0838nobodyさん2011/02/14(月) 18:20:13ID:???
>>836
できませんでした。うーむ。なれるしか無いか。
0839nobodyさん2011/02/14(月) 18:51:26ID:???
そもそもデータ中にNoneがあったら
開発用と本番用で挙動が変わったり
インデックスが壊れたり色々困るだろうに
0840nobodyさん2011/02/15(火) 13:52:48ID:???
>>839
そうなの?
0841nobodyさん2011/02/15(火) 19:26:29ID:???
数値データなんか生のデータに0があるときはNoneも使わないと計算できなくない?
0842nobodyさん2011/02/19(土) 22:13:51.81ID:???
dbプログラマんだから、いままでのdbと同様に使える事を期待するのが普通でしょ。
gqlのほうがデータベースと逝ってるわりにデータベースっぽい扱いさせてくれないほうが不親切。
0843nobodyさん2011/02/20(日) 09:11:47.23ID:mUqklcdg
DBとRDBは区別つけておこう。
0844nobodyさん2011/02/24(木) 14:56:50.70ID:???
<select>
  {% for e in list %}
  <option value={{ e }}>{{ e }}</option>
  {% endfor %}
</select>

こんなことやりたいのですが、db.StringPropertyのchoices=set()で設定されている
規定値のリストを取得する方法を教えてください。
0845nobodyさん2011/02/24(木) 15:32:58.04ID:???
self.choicesにそのまま入っているっぽいが
0846nobodyさん2011/02/24(木) 16:22:18.14ID:???
>>845
あー
setオブジェクトで入ってました。

要素取り出す方法がわかりません・・・
0847nobodyさん2011/02/24(木) 16:28:32.97ID:???
普通にやればいいよ
>>> a = set([1, 2, 3])
>>> for i in a:
print i

1
2
3
>>>
ソートしたいならsortedで
0848nobodyさん2011/02/24(木) 16:37:38.93ID:???
普通にループで取り出せそうです。
ありがとうございました。
0849nobodyさん2011/02/26(土) 16:56:50.23ID:???
Python2.5で
Djangoを使ってフォームをつくろうとしているのですが、
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 515, in __call__
handler.get(*groups)
File "C:\Users\wish\project\room\main.py", line 44, in get
html = template.render(fpath,params)
(中略)
File "C:\Program Files\Google\google_appengine\lib\django_0_96\django\template\loader.py", line 72, in find_template_source
raise TemplateDoesNotExist, name
TemplateDoesNotExist: layout.html

このようなエラーになってしまい、動きません。
app.yamlは

handlers:
- url: /css
static_dir: css

- url: .*
script: main.py
と設定してあります。
また、app.yamlとmain.pyのディレクトリの下にそれぞれ
viwesとcssというフォルダを置き、cssにcssファイルを、
viewsにhtmlをおいています。
0850nobodyさん2011/02/26(土) 17:00:17.62ID:???
>>849
TemplateDoesNotExist: layout.html
0851nobodyさん2011/02/26(土) 17:29:20.46ID:???
>>850
layout.htmlはviwesフォルダに入っています。
試しにcssフォルダや、app.yamlと同じディレクトリに置いてみても変わりませんでした。
0852nobodyさん2011/02/26(土) 17:45:35.61ID:???
fpathにちゃんとパスが入っているかどうかぐらい自分で確認してもいいんじゃない?
0853nobodyさん2011/02/26(土) 17:45:57.73ID:???
ちゃんとパス通してる?
0854nobodyさん2011/02/26(土) 17:47:02.95ID:???
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3245, in _HandleRequest
self._Dispatch(dispatcher, self.rfile, outfile, env_dict)

中略

File "C:\Program Files\Google\google_appengine\lib\django_0_96\django\newforms\util.py", line 15, in smart_unicode
s = unicode(s, settings.DEFAULT_CHARSET)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x89 in position 0: invalid start byte

Python2.5です。windows7
GAEを使ってローカルサーバでテストしているのですが、このエラーでつまづいてしまいました。
Djangoを使って入力フォームの作成をしています。
0855nobodyさん2011/02/26(土) 18:07:17.08ID:???
>>852 >>853
すみません、見落としていました。ありがとうございます。
0856nobodyさん2011/02/28(月) 01:11:08.16ID:VazHfe0j
UserAgentで振り分けしたいのですが、.htaccessのように一括で振り分ける方法はありませんか?
def get(self):
  if ua == keitai:
    ~ケータイ用のページへジャンプ~

という処理をすべてのクラスに記述するしかないのでしょうか?
0857nobodyさん2011/02/28(月) 01:13:57.28ID:???
それしかないと思う
まあPythonのデコレータ使えば綺麗に書けるはず
0858nobodyさん2011/02/28(月) 05:02:15.92ID:???
Javaサーブレットのフィルターにあたるものはないの?
0859nobodyさん2011/02/28(月) 14:24:19.45ID:???
Djangoを使ってフォームを作ったのですが

複数のフォームに入力されたデータをある一定のアルゴリズムで変換し
(たとえば、1と入力したら50,4と入力したら200など)
それを表示したいのですが、この場合どうすればいいんでしょうか?

現在は、AddHandlerで
def post(self):
form = AddForm(data=self.request.POST)
if form.is_valid():
data = form.save()
data.put()
self.redirect("/")
else:
self.layout["content"] = self.view_dir + "add.html"
params = {"layout":self.layout,"form":form}
fpath = os.path.join(os.path.dirname(__file__),"layouts",self.layout_file)
html = template.render(fpath,paramas)
self.response.out.write(html)
このように、入力された値は保存してそのままindexで表示されるようになっています。
0860nobodyさん2011/03/01(火) 22:30:04.73ID:???
bulkloaderでkeyのnameを指定する方法を教えてください。
http://d.hatena.ne.jp/sugyan/20090705/1246803690
ではgenerate_keyを設定してますが bulkloader.yaml
で設定する方法がわかりません。

localで実行のみ。
Modelクラスだけで定義はしているけど、まだdatastore上に実体のデータがない。
とりあえずbulkloaderを走らせてみましたが、データは記録できるものの不定期にスレッドエラーがでて全行送れない。→インデックス設定が必要?
この問題はさておき、何度もテストしていると重複したデータが増える。
key_nameをフィールドを連結した文字列で設定してアップロードしたい。
テストはこのサイトを忠実に再現している・・・つもり。
http://endoyuta.blogspot.com/2011/02/gaebulk-loadercsv.html

というわけです。よろしくお願いします。
0861nobodyさん2011/03/02(水) 01:01:09.41ID:???
アップロードエラーの件は自己解決しました。
--num_threads=
でスレッド数を制限したらいけました。

あとはkey nameで保存させることです。よろしくお願いします。
0862nobodyさん2011/03/02(水) 04:09:43.92ID:???
bulkloader.yaml
---------------
property_map:
 - property: __key__
  external_name: key
  export_transform: transform.key_id_or_name_as_string

ならcsvのcolumn_name=keyのフィールドがkey_nameになる
0863nobodyさん2011/03/02(水) 20:37:20.74ID:???
>>825
前は3.xのサポートだった気がする。。
0864nobodyさん2011/03/04(金) 12:03:30.61ID:???
>>862
ありがとうございました。
調べた結果キーを複数の要素から生成するにはこうすればできるようです。


- property: __key__
import_template: "%(first_name)s %(last_name)s"

http://efreedom.com/Question/1-3920171/Set-Key-New-Bulkloader

first_nameとlast_nameの定義の前でも使えるのか疑問ですがちょっとやってみます。
0865nobodyさん2011/03/05(土) 05:47:42.88ID:???
>>858
WSGI だからなんとでもなるが
0866nobodyさん2011/03/05(土) 17:06:25.19ID:???
>>864です。
やっぱりエラーが出ます。
Error parsing yaml file:
Invalid object:
Neither external_name nor import_template nor export specifiled for propaty __key__

こんな風に名前の定義も入れてみたんですが、ダメです。

- kind: Station
 connector: csv
 connector_options:
  encoding: euc-jp
  skip_import_header_row : True
  column_list: [rr_cd, line_cd, station_cd,
  line_sort, station_sort, station_g_cd, r_type,
  rr_name, line_name, station_name,pref_cd,
  lon, lat,f_flag]
 property_map:
  - property: __key__
  - import_template: "%(line_name)s%(station_name)s"

ここを参考にしてます。
http://endoyuta.blogspot.com/2011/02/gaebulk-loadercsv.html
csvを改造してKEYを先に作ったほうがラクかなあ。
お知恵をおかし下さい。
0867nobodyさん2011/03/05(土) 18:39:45.84ID:???
追記
こんどは郵便番号データを郵便番号をキーに登録しようとしてやはり同じエラーが出ました。

- kind: ziplist
 connector: csv
 connector_options:
  encoding: utf-8
  column_list: [cityno, oldzip, zipcode, pref, citykana, city, townkana,
    town, two_code, banchi, chome, two_town]
 property_map:
  - property: __key__
  external_name: zipcode
  export_transform: transform.key_id_or_name_as_string

http://www.post.japanpost.jp/zipcode/download.html
0868nobodyさん2011/03/06(日) 10:33:02.95ID:???
>>866
columns: from_headerを明記する
  - import_template: "%(line_name)s%(station_name)s"
マイナス記号がいつの間にかくっついてた
コピペでいろいろ試しているうちに余計に現象が複雑化してました。
無事、二つのカラムからKeyを生成できました。

>>867
これからやってみます。

まずはご報告まで。
0869nobodyさん2011/03/06(日) 14:56:49.77ID:???
>>867
export_transform: transform.key_id_or_name_as_string

これ削除したらkey_nameでのインポートはできるようになりました。
エクスポートの時に困りますね。
0870nobodyさん2011/03/07(月) 08:14:19.48ID:???
アプリ登録する時に2種類から選択できるようになったって話を聞いたんですが、
それについてどこかに詳しく説明してるページないでしょうか?
■ このスレッドは過去ログ倉庫に格納されています