2017年5月26日金曜日

Android Google+のログインで Status{statusCode=DEVELOPER_ERROR, resolution=null}が発生

久しぶりにAndroid の Google+でログイン機能をテストしていたら、エラーも出ずにログインできない状態に。

調査をしたところ
private void handleSignInResult(GoogleSignInResult result) {
}
の関数内でresult.isSuccess()がfalseを返している。

以下の形でログを吐いてみたところ
Logging.e(result.getStatus().toString());

Status{statusCode=DEVELOPER_ERROR, resolution=null}

というエラーが発生していた。

調べていたら、Androidをdebugモードでビルドしていたのが原因だった。忘れてた。。releaseモードで動かさないとまともにGoogle+でのログインは動かないのだった。。。

早速マーケットに上げるときと同じ手順でapkファイルを作成し、Androidの実機でインストールで動くようになった!

2015年2月5日木曜日

AWSの固定IPアドレスのリミットを解除する方法

個人のサーバーをAWSで利用しているのだが、デフォルトの状態だと固定IPアドレスは5つまでしか取得できず以下のエラーが発生する。

An error occurred while attempting to allocate the IP address
The maximum number of addresses has been reached.



そんな時はAmazonに追加申請をすれば良いのだが、勝手にハードルが高いと思っていたのだが、ものの数十分でIPが追加される。
手順は以下

Amazon固定IP追加申請画面


AWSマネージメントコンソールにログインした状態で上記URLを開く


各項目に以下を設定 (以下が英語で表示されている方は、画面上に言語変更のプルダウンがあるのでそこから日本語を選択)

------------------------------------

CC : メールアドレス

内容: サービス制限の増加

制限タイプ : Elastic IPs -EC2 Classic

リクエスト1 リージョン : 固定IP追加したいリージョンを選択
制限    : EC2-Classic Elastic IP アドレス上限
新しい制限値: 変更したい上限値。(現在5だったので10と入力しました)
リクエスト2
→特に設定なし

申請理由の説明 : 追加理由を記入。
わたしの場合は「弊社の新サービスを構築するためにIPアドレスが必要です。」としておきました

連絡方法 : WEB

------------------------------------

上記で、送信!

平日の14時くらいに申請したところ、20分ほどで

さきほどVPC EIPの上限を緩和させていただきました。
現在の上限は10でございます。

※ご利用いただけるまでに10分ほどお時間がかかる可能性がございます。

というメールがきて完了!
以外に楽でびっくり

2014年2月9日日曜日

[Android] twitter4jのgetOAuthRequestTokenでTwitterExceptionエラー

Androidアプリでtwitter4jを使いtwitterにログインしていたが、2014年1月から突然投稿できなくなった。
エラー内容を追って見ると、getOAuthRequestTokenでTwitterExceotionが発生。
エラーの内容は以下
403:The request is understood, but it has been refused. An accompanying error message will explain why. This code is used when requests are being denied due to update limits (https://support.twitter.com/articles/15364-about-twitter-limits-update-api-dm-and-following).
エラー内容に記載してあるサイト(https://support.twitter.com/articles/15364-about-twitter-limits-update-api-dm-and-following)にアクセスするもtwitterのリミット制限に引っかかったようなエラー内容。
調査をしているとhttpsモードじゃないとエラーとなるような制限が加わったとかいう情報を海外で発見。
twitter4jでどうやってSSLにするのかよく分からなかったが、ConfigurationBuilderオプションでSSLモードが指定できることを発見。試してみたところうまく動いた。

修正前[ツイッターログイン部分]
ConfigurationBuilder cbuilder = new ConfigurationBuilder();
cbuilder.setOAuthConsumerKey(StringUtil.TWEET_CONSUMER_KEY);
cbuilder.setOAuthConsumerSecret(StringUtil.TWEET_CONSUMER_SECRET);
Configuration conf = cbuilder.build();
mOauth = new OAuthAuthorization(conf);
mOauth.setOAuthAccessToken(null);
String authUrl = null;
try {
authUrl = mOauth.getOAuthRequestToken(StringUtil.TWEET_CALLBACK_URL).getAuthorizationURL();
} catch (Exception e) {
Logging.e(e.toString());
return;
}

修正後
ConfigurationBuilder cbuilder = new ConfigurationBuilder();
cbuilder.setUseSSL(true);//2014年よりこれが無いとエラーとなる仕様に変わった。
cbuilder.setOAuthConsumerKey(StringUtil.TWEET_CONSUMER_KEY);
cbuilder.setOAuthConsumerSecret(StringUtil.TWEET_CONSUMER_SECRET);
Configuration conf = cbuilder.build();
mOauth = new OAuthAuthorization(conf);
mOauth.setOAuthAccessToken(null); // これをやらないと下記getOAuthRequestToken()で例外が発生する
String authUrl = null;
try {
authUrl = mOauth.getOAuthRequestToken(StringUtil.TWEET_CALLBACK_URL).getAuthorizationURL();
} catch (Exception e) {
Logging.e(e.toString());
return;
}


同じく投稿時にも同様のエラーが出ていたため修正!

修正前
//メッセージを投稿
ConfigurationBuilder confbuilder = new ConfigurationBuilder();
confbuilder.setOAuthAccessToken(oauthToken).setOAuthAccessTokenSecret(oauthTokenSecret)
.setOAuthConsumerKey(StringUtil.TWEET_CONSUMER_KEY).setOAuthConsumerSecret(StringUtil.TWEET_CONSUMER_SECRET);
//メッセージの取得
Twitter twitter = new TwitterFactory(confbuilder.build()).getInstance();

修正後
//メッセージを投稿
ConfigurationBuilder confbuilder = new ConfigurationBuilder();
confbuilder.setOAuthAccessToken(oauthToken).setOAuthAccessTokenSecret(oauthTokenSecret)
.setOAuthConsumerKey(StringUtil.TWEET_CONSUMER_KEY).setOAuthConsumerSecret(StringUtil.TWEET_CONSUMER_SECRET);
confbuilder.setUseSSL(true);//2014年よりこれが無いとエラーとなる仕様に変わった。
//メッセージの取得
Twitter twitter = new TwitterFactory(confbuilder.build()).getInstance();

上記で無事にエラー無く動作することを確認。

2011年3月16日水曜日

logcatが表示されない場合

以下を実行するとlogcatが表示されるようになる
adb kill-server
adb start-server
adb logcat -c
eclipse再起動

2011年2月20日日曜日

PostGISのインストール手順(centos)

postgisをcentosに入れる作業の備忘録

wget http://postgis.refractions.net/download/postgis-1.5.2.tar.gz

解凍してconfiugreを実行
./configure

以下のエラー
configure: error: could not find xml2-config from libxml2 within the current path. You may need to try re-running configure with a --with-xml2config parameter.

yumを使って、最新版にアップデート
yum install libxml2
yum install libxml2-devel

もう一度挑戦
./configure

さっきのエラーは突破したが別のエラー
configure: error: could not find geos-config within the current path. You may need to try re-running configure with a --with-geosconfig parameter.

geosをゲット
wget http://download.osgeo.org/geos/geos-3.2.2.tar.bz2

解凍してconfigure
./configure
make
make install

もう一度postgisのインストールに挑戦
./configure

またエラー
configure: error: could not find proj_api.h - you may need to specify the directory of a PROJ.4 installation using --with-projdir

projをゲット
wget ftp://ftp.remotesensing.org/proj/proj-4.7.0.tar.gz

解凍してconfigure
./configure
make
make install

もう一度postgisのインストールに挑戦
./configure
やっと成功!!
make
make install

新しい PostgreSQL 手続き言語の定義
createlang plpgsql DB名

SQLを実行する
psql -d soul -f /usr/local/src/postgis-1.5.2/postgis/postgis.sql
SET
BEGIN
ERROR: could not load library "/usr/local/pgsql/lib/postgis-1.5.so": libgeos_c.so.1: cannot open shared object file: No such file or directory

速攻でエラーが発生。。

pathが通ってないようだ。
以下のファイルを作成
vi /etc/ld.so.conf.d/geos.conf

ファイル内に、以下を記載
/usr/local/lib

以下のコマンドを実行
/sbin/ldconfig

再チャレンジ
psql -d soul -f /usr/local/src/postgis-1.5.2/postgis/postgis.sql

成功!

実際に確認してみる
-------------------------
soul=# select postgis_full_version(); postgis_full_version
POSTGIS="1.5.2" GEOS="3.2.2-CAPI-1.6.2" PROJ="Rel. 4.7.1, 23 September 2009" LIBXML="2.6.26" USE_ST
ATS
(1 row)
--------------------------

うまく行ってるっぽい

2011年2月15日火曜日

Androidの実機でステップ実行する方法

eclipceでデバックする際にAndroidの実機でステップ実行する方法です。

AndroidManifest.xmlのapplicationタグに以下を追加するだけ

<application android:debuggable="true">

それと実機側の設定でデバックモードとする必要もあります

2010年2月5日金曜日

サーバーでjqueryのPage Scrollerがうまく動作しない

jqueryがサーバーでうまく動作せずハマった。
他のサイトで動いているサンプルスクリプトをDLしサーバーにアップしても動かない。
ソースも文字コードも、何も変えてない。

しかしローカル環境で動かしてみると正常に動作する。
悩むこと2時間。
ハッと気づくことが。

自宅環境はapacheのhttpd.confの設定でVirtualHostを設定し、ポートを80番以外で動かしていた。
まさかと思ってVirtualHostではなくポート80で動かすと正常に動作!!!

たまたま気付けて良かったが、これはハマった。
VirtualHost設定している方は注意してください。