はじめまして、SN開発のvicente(ビセンテ)です。 主にJavaを使ってAndroidアプリ開発しています。
今日はAndroidアプリでの 「LINEへの投稿」について書きます。
他のSNSと比べて、LINEの画像や文書投稿が簡単です。 一つの端末は一つのアカウントしかないので次の管理は必要ではありません。
- アカウント管理
- ログイン認証
- ユーザーの許可
投稿は簡単ですが、端末にLINEアプリはインストールされてないと投稿が出来ません。
投稿のやり方
基本(LINEアプリの確認)
LINEアプリは必要なので、携帯にLINEアプリがインストール済みの確認が必要です。 LINEアプリのパッケージ名は [jp.naver.line.android]ですので、このパッケージがインストールされているかどうかを確認します。
例
public static boolean appInstalled(Context context, String uri)
{
PackageManager pm = context.getPackageManager();
boolean appInstalled = false;
try{
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
return true;
}catch (PackageManager.NameNotFoundException e){
return false;
}
}
使い方:
if (!appInstalled(context, "jp.naver.line.android")){
Toast.makeText(context, "LINEアプリのインストールが必要です", Toast.LENGTH_SHORT).show();
return;
}
文書投稿
LINEへ文書投稿したい場合は次のステップをやります:
- LINEアプリのスキーム起動を準備します: [line://]
- LINEのスキーム起動の文書パラメーターを付ける [msg/text]
- パラメーターの後、投稿したい文書(パーセントエンコーディング(utf-8)したテキスト)を付けます [/文書]
- 作成したLINEアプリのスキーム起動を実行する [line://msg/text/文書]
文書にURLも設定可能です。
次のURLにアクセスだけで文書投稿が出来ます: [line://msg/text/<パーセントエンコーディング(utf-8)したテキスト>]
例
public static boolean sendTextToLine(Context context, String lineComment){
try {
String lineString = "line://msg/text/" + lineComment;
Intent intent = Intent.parseUri(lineString, Intent.URI_INTENT_SCHEME);
context.startActivity(intent);
} catch (Exception e) {
//LINE投稿失敗
}
}
使い方:
sendTextToLine(context, "こちらのコメントはLINEへ投稿しました!");
画像投稿
LINEへ画像投稿したい場合は次のステップをやります:
- LINEアプリのスキーム起動を準備します: [line://]
- LINEのスキーム起動の画像パラメーターを付ける [msg/photo]
- パラメーターの後、投稿したい画像のパス(ローカルファイルの画像のパス)を付けます [/<ファイルパス>]
- 作成したLINEアプリのスキーム起動を実行する [line://msg/photo/<ファイルパス>]
注意: ローカルファイルのパスが必要ですので、インターネットにあるファイルを投稿したい場合は、まず、サーバーからファイルをSDカードに保存してからLINEへ投稿して下さい。
次のURLにアクセスだけで画像投稿が出来ます:[line://msg/photo/<ローカルファイルの画像のパス>]
例
public static boolean sendImageToLine(Context context, String localFileName){
try {
String lineString = "line://msg/image/" + localFileName;
Intent intent = Intent.parseUri(lineString, Intent.URI_INTENT_SCHEME);
context.startActivity(intent);
} catch (Exception e) {
//LINE投稿失敗
}
}
使い方:
private static final String DIRECTORY_PATH = Environment.getExternalStorageDirectory().getPath() + "/myapp/";
sendImageToLine(context, DIRECTORY_PATH + "downloadedImage.jpg");
まとめ
LINEへの投稿は簡単ですが、「画像 + 文書」を投稿したい場合は2回LINEのアプリを実行しなければなりません。(1回目は画像,2回目は文書)(画像のコメントのイメージ)。
尚、文書投稿の場合はURLが可能なので、「インターネットにある画像のURL + 文書」を投稿することが可能です