Macで、Eclipseの環境をしっかりとして
ターミナルで
keytool -list -alias androiddebugkey -keystore ~/.Android/debug.keystore -storepass android -keypass android
とすると、認証キーが出てくる。
これを、Sign Up for the Android Maps APIに貼付けて(Generate API Key)押したら
おわり。
得意な言語PHP, JavaScript , VBAですかね・・・ 今までPGしか勉強してなかったのですが、最近サーバーの事も勉強初めて忘れる事が多いので書き貯めて行こうと思います。
2011年1月29日土曜日
2011年1月27日木曜日
2011年1月20日木曜日
Android Appを勉強始めました
Androidの勉強でもがんばろうと思って、18日から環境を整えてがんばろうと思い
今日は出来てないけど、18日はとりあえず定番の「Hello World」からがんばりました。
これから、猛勉強してがんばって行こうと思う!!!
最近仕事も忙しいのですが、何でも作れるよ!って言えるまでがんばります!(^^;)
今日は出来てないけど、18日はとりあえず定番の「Hello World」からがんばりました。
これから、猛勉強してがんばって行こうと思う!!!
最近仕事も忙しいのですが、何でも作れるよ!って言えるまでがんばります!(^^;)
2011年1月16日日曜日
Google YouTubeAPIを使ってみた
Googleから提供されているYouTube APIを使ってみた。
色々と悩みましたが、慣れてしまえば何のその。
結構便利に良い物が面白く作れました!!
忘れない様にコードをここへ・・・
YouTubeに動画をアップロードするプログラム
if($_GET['status']==200){
if($_GET['id']){
$douga_insert = new Sql;
$douga_insert->value = array($login->dataset[0]['id'],$_GET['id']);
$douga_insert->sql_insert('Douga');
$_SESSION['report'] = '動画のアップロードが完了しました';
header('Location: ?dsp=douga_admin');
exit();
}
}
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata_YouTube');
Zend_Loader::loadClass('Zend_Gdata_AuthSub');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
$sDeveloperKey = 'YouTubeAPIの開発コード';
$sAccount = 'YouTubeのログインアカウント(ID)';
$sPassword = 'YouTubeのログインパスワード';
$sMovieTitle = 'DatsuNet Movie '.$login->dataset[0]['user_name'];
$sDescription = '';
$sTags = '';
$sNextUrl = 'アップロード後の戻り先URL(フルパス)';
$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';
$httpClient = Zend_Gdata_ClientLogin::getHttpClient(
$username = $sAccount,
$password = $sPassword,
$service = 'youtube',
$client = null,
$source = 'gwiki', // a short string identifying your application
$loginToken = null,
$loginCaptcha = null,
$authenticationURL);
$httpClient->setHeaders('X-GData-Key', "key=${sDeveloperKey}");
$yt = new Zend_Gdata_YouTube($httpClient);
// create a Zend_Gdata_YouTube_VideoEntry
$myVideoEntry= new Zend_Gdata_YouTube_VideoEntry();
// set up media group as in the example above
$mediaGroup = $yt->newMediaGroup();
$mediaGroup->title = $yt->newMediaTitle()->setText($sMovieTitle);
$mediaGroup->description = $yt->newMediaDescription()->setText($sDescription);
$categoryScheme = 'http://gdata.youtube.com/schemas/2007/categories.cat';
$developerTagScheme = 'http://gdata.youtube.com/schemas/2007/developertags.cat';
$mediaGroup->category = array(
$yt->newMediaCategory()->setText('Autos')->setScheme($categoryScheme),
$yt->newMediaCategory()->setText('mydevelopertag')->setScheme($developerTagScheme),
$yt->newMediaCategory()->setText('anotherdevelopertag')->setScheme($developerTagScheme)
);
$mediaGroup->keywords = $yt->newMediaKeywords()->setText($sTags);
$myVideoEntry->mediaGroup = $mediaGroup;
$tokenHandlerUrl = 'http://gdata.youtube.com/action/GetUploadToken';
$tokenArray = $yt->getFormUploadToken($myVideoEntry, $tokenHandlerUrl);
$tokenValue = $tokenArray['token'];
$postUrl = $tokenArray['url'];
$nextUrl = $sNextUrl;
View部分
echo $form = '<form action="'. $postUrl .'?nexturl='. $nextUrl .
'" method="post" enctype="multipart/form-data">'.
'動画ファイルを選択して下さい:<input name="file" type="file"/>'.
'<input name="token" type="hidden" value="'. $tokenValue .'"/>'.
'<input value="動画アップロード" type="submit" />'.
'</form>';
これで、アップロード出来ます。
そして、削除するには
$videoId = $_GET['YouTubeのVideoID'];
$videoEntryToDelete = $yt->getVideoEntry($videoId, null, true);
$yt->delete($videoEntryToDelete);
これで、消えます。
Googleってすばらしいですね〜最高ですね〜
色々と悩みましたが、慣れてしまえば何のその。
結構便利に良い物が面白く作れました!!
忘れない様にコードをここへ・・・
YouTubeに動画をアップロードするプログラム
if($_GET['status']==200){
if($_GET['id']){
$douga_insert = new Sql;
$douga_insert->value = array($login->dataset[0]['id'],$_GET['id']);
$douga_insert->sql_insert('Douga');
$_SESSION['report'] = '動画のアップロードが完了しました';
header('Location: ?dsp=douga_admin');
exit();
}
}
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata_YouTube');
Zend_Loader::loadClass('Zend_Gdata_AuthSub');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
$sDeveloperKey = 'YouTubeAPIの開発コード';
$sAccount = 'YouTubeのログインアカウント(ID)';
$sPassword = 'YouTubeのログインパスワード';
$sMovieTitle = 'DatsuNet Movie '.$login->dataset[0]['user_name'];
$sDescription = '';
$sTags = '';
$sNextUrl = 'アップロード後の戻り先URL(フルパス)';
$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';
$httpClient = Zend_Gdata_ClientLogin::getHttpClient(
$username = $sAccount,
$password = $sPassword,
$service = 'youtube',
$client = null,
$source = 'gwiki', // a short string identifying your application
$loginToken = null,
$loginCaptcha = null,
$authenticationURL);
$httpClient->setHeaders('X-GData-Key', "key=${sDeveloperKey}");
$yt = new Zend_Gdata_YouTube($httpClient);
// create a Zend_Gdata_YouTube_VideoEntry
$myVideoEntry= new Zend_Gdata_YouTube_VideoEntry();
// set up media group as in the example above
$mediaGroup = $yt->newMediaGroup();
$mediaGroup->title = $yt->newMediaTitle()->setText($sMovieTitle);
$mediaGroup->description = $yt->newMediaDescription()->setText($sDescription);
$categoryScheme = 'http://gdata.youtube.com/schemas/2007/categories.cat';
$developerTagScheme = 'http://gdata.youtube.com/schemas/2007/developertags.cat';
$mediaGroup->category = array(
$yt->newMediaCategory()->setText('Autos')->setScheme($categoryScheme),
$yt->newMediaCategory()->setText('mydevelopertag')->setScheme($developerTagScheme),
$yt->newMediaCategory()->setText('anotherdevelopertag')->setScheme($developerTagScheme)
);
$mediaGroup->keywords = $yt->newMediaKeywords()->setText($sTags);
$myVideoEntry->mediaGroup = $mediaGroup;
$tokenHandlerUrl = 'http://gdata.youtube.com/action/GetUploadToken';
$tokenArray = $yt->getFormUploadToken($myVideoEntry, $tokenHandlerUrl);
$tokenValue = $tokenArray['token'];
$postUrl = $tokenArray['url'];
$nextUrl = $sNextUrl;
View部分
echo $form = '<form action="'. $postUrl .'?nexturl='. $nextUrl .
'" method="post" enctype="multipart/form-data">'.
'動画ファイルを選択して下さい:<input name="file" type="file"/>'.
'<input name="token" type="hidden" value="'. $tokenValue .'"/>'.
'<input value="動画アップロード" type="submit" />'.
'</form>';
これで、アップロード出来ます。
そして、削除するには
$videoId = $_GET['YouTubeのVideoID'];
$videoEntryToDelete = $yt->getVideoEntry($videoId, null, true);
$yt->delete($videoEntryToDelete);
これで、消えます。
Googleってすばらしいですね〜最高ですね〜
2011年1月13日木曜日
VBAでFTPファイルアップロード
VBAを使って、ファイルをプットするためのプログラム。
これにはBASP21をインストールしておく必要がある。
使用用途としては、FTPのアカウントを教えたくない人に対して
これを使って、指定の位置へファイルをアップロードさせるためのもの。
HTML5になってからは、不要になりましたがIE8などは
まだ、FILE POSTにMultiが対応していないので、使えるのかなぁ~?
まぁ、VBAなのでプロジェクト保護してても、パスワードは抜き取られちゃうので
セキュリティ的には、ヘボヘボですが・・・・
一応、忘れないためにメモ。
Sub picture_uploader()
Dim FTP, rc As Long, Server As String, User As String, Pass As String
Dim Target As String, Folder As String
Dim a As String
Dim folder_path As Object
'FTPオブジェクト
'TAKARA FTP設定(設定する場合は「'」を外してください。)
Server = "ホスト"
User = "ユーザーID"
Pass = "ユーザーパスワード"
Set folder_path = CreateObject("Shell.Application").BrowseForFolder(0, "フォルダを選択してください", 1, ",")
If Not folder_path Is Nothing Then
a = folder_path.Items.Item.Path
End If
If a = "" Then
MsgBox "参照先が選択されませんでした。"
Range("B1") = ""
End
Else
fp = a
Range("A1") = fp
With Application.FileSearch
.LookIn = fp
.SearchSubFolders = True
.FileType = msoFileTypeAllFiles
.Filename = ".jpg"
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
MsgBox .FoundFiles.Count & "個のファイルが見つかりました。"
For i = 1 To .FoundFiles.Count
fname = .FoundFiles(i)
d = Len(fp)
fname1 = Len(fname)
fname2 = Right(fname, fname1 - d - 1)
'フォルダパス1を画像名から取り出す
'f_path1 = Len(fname2)
'f_path1_1 = Right(fname2, f_path1 - 3)
'f_path1_2 = Len(f_path1_1)
'f_path1 = Left(fname2, f_path1 - f_path1_2)
'フォルダパス2を画像名から取り出す
f_path2 = Replace(fname2, ".jpg", "")
f_path2_1 = Len(f_path2)
f_path2 = Left(f_path2, f_path2_1)
'Cells(i + 1, 2).Value = "/" & f_path1 & "/" & f_path2 & "/"
Cells(i + 1, 2).Value = fname2 'ファイル名
Next i
Else
MsgBox "条件を満たすファイルはありません。"
End If
End With
Set FTP = CreateObject("basp21.ftp")
'サーバー接続
rc = FTP.Connect(Server, User, Pass)
If rc <> 0 Then
MsgBox "接続できませんでした。", vbCritical
FTP.Close
Exit Sub
End If
For i = 2 To 65536
Range("B" & i).Activate
If Range("B" & i) = "" Then
Exit For
Else
'ローカルファイルの場所
Target = Range("A1") & "\" & Range("B" & i)
'FTP送信先
Folder = "/IMAGES/"
rc = FTP.PutFile(Target, Folder, 1)
If rc <> 1 Then
MsgBox Range("B" & i) & "の画像がアップロード出来ませんでした。", vbCritical
FTP.Close
Exit Sub
Else
Range("C" & i) = "OK"
End If
End If
Next
MsgBox "全ての画像がアップロード出来ました。", vbInformation
FTP.Close
Set FTP = Nothing
End If
End Sub
これにはBASP21をインストールしておく必要がある。
使用用途としては、FTPのアカウントを教えたくない人に対して
これを使って、指定の位置へファイルをアップロードさせるためのもの。
HTML5になってからは、不要になりましたがIE8などは
まだ、FILE POSTにMultiが対応していないので、使えるのかなぁ~?
まぁ、VBAなのでプロジェクト保護してても、パスワードは抜き取られちゃうので
セキュリティ的には、ヘボヘボですが・・・・
一応、忘れないためにメモ。
Sub picture_uploader()
Dim FTP, rc As Long, Server As String, User As String, Pass As String
Dim Target As String, Folder As String
Dim a As String
Dim folder_path As Object
'FTPオブジェクト
'TAKARA FTP設定(設定する場合は「'」を外してください。)
Server = "ホスト"
User = "ユーザーID"
Pass = "ユーザーパスワード"
Set folder_path = CreateObject("Shell.Application").BrowseForFolder(0, "フォルダを選択してください", 1, ",")
If Not folder_path Is Nothing Then
a = folder_path.Items.Item.Path
End If
If a = "" Then
MsgBox "参照先が選択されませんでした。"
Range("B1") = ""
End
Else
fp = a
Range("A1") = fp
With Application.FileSearch
.LookIn = fp
.SearchSubFolders = True
.FileType = msoFileTypeAllFiles
.Filename = ".jpg"
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
MsgBox .FoundFiles.Count & "個のファイルが見つかりました。"
For i = 1 To .FoundFiles.Count
fname = .FoundFiles(i)
d = Len(fp)
fname1 = Len(fname)
fname2 = Right(fname, fname1 - d - 1)
'フォルダパス1を画像名から取り出す
'f_path1 = Len(fname2)
'f_path1_1 = Right(fname2, f_path1 - 3)
'f_path1_2 = Len(f_path1_1)
'f_path1 = Left(fname2, f_path1 - f_path1_2)
'フォルダパス2を画像名から取り出す
f_path2 = Replace(fname2, ".jpg", "")
f_path2_1 = Len(f_path2)
f_path2 = Left(f_path2, f_path2_1)
'Cells(i + 1, 2).Value = "/" & f_path1 & "/" & f_path2 & "/"
Cells(i + 1, 2).Value = fname2 'ファイル名
Next i
Else
MsgBox "条件を満たすファイルはありません。"
End If
End With
Set FTP = CreateObject("basp21.ftp")
'サーバー接続
rc = FTP.Connect(Server, User, Pass)
If rc <> 0 Then
MsgBox "接続できませんでした。", vbCritical
FTP.Close
Exit Sub
End If
For i = 2 To 65536
Range("B" & i).Activate
If Range("B" & i) = "" Then
Exit For
Else
'ローカルファイルの場所
Target = Range("A1") & "\" & Range("B" & i)
'FTP送信先
Folder = "/IMAGES/"
rc = FTP.PutFile(Target, Folder, 1)
If rc <> 1 Then
MsgBox Range("B" & i) & "の画像がアップロード出来ませんでした。", vbCritical
FTP.Close
Exit Sub
Else
Range("C" & i) = "OK"
End If
End If
Next
MsgBox "全ての画像がアップロード出来ました。", vbInformation
FTP.Close
Set FTP = Nothing
End If
End Sub
2011年1月12日水曜日
Qdsmtpを使ってGmail SMTPを使ってメール送信
PHPのライブラリQdsmtpでSMTPメールを送信するのですが
いつもなら、PHPのファンクションのmb_send_mail()を使うのですが
今回は、サーバーにメールサーバーを構築してないので、GmailのSMTPを使って
メール送信するんですが、ちょっとハマってしまったので忘却記録を・・・
こんな事で、つまづくとは・・・・
とりあえず、Qdsmtpをダウンロードしてきて
あとは、インクルードするだけだったので、結構簡単です。
問題は初期設定。
$setting = array(
'host' => 'ssl://smtp.gmail.com',
'port' => '465',
'from' => 'sample@gmail.com',
'user' => 'sample@gmail.com',
'pass' => 'password',
'protocol' => 'SMTP_AUTH'
);
つまずいたのは、hostの部分とポートの部分。
まぁ調べたらすぐ解った事だったので、一件落着。
hostの部分は smtp.gmail.comとだけ入力してたのですがエラーがずっと出ていて
なんで!なんで!って思いながら
http://mail.google.com/support/bin/answer.py?hl=jp&answer=44793
を読むとSSLだったので、tlsでも動くと思うんですが上のURL見たら解決出来ました。
Qdsmtpの良い所は、mb_send_mail()と同じように扱えるので便利です。
例えば
$smtp = new QdSmtp($setting);
$smtp -> mail('送り先','件名','メール内容','ヘッダ(省略可)','パラメータ(省略可)');
とすれば、メール送信されます。
色々とQdsmtpの中身を見てましたが、便利なクラスです。
送信したいメールアドレスを配列にして
$mail_array = array('1@test.jp', '2@test.jp', '3@test.jp');
$smtp->to($mail_array);
でもOK!!
すごい便利ですねぇぇぇ
世の中、良い物が転がってますね。
QdsmtpはMITライセンスなので、ご自由にダウンロードして使用してください。
いつもなら、PHPのファンクションのmb_send_mail()を使うのですが
今回は、サーバーにメールサーバーを構築してないので、GmailのSMTPを使って
メール送信するんですが、ちょっとハマってしまったので忘却記録を・・・
こんな事で、つまづくとは・・・・
とりあえず、Qdsmtpをダウンロードしてきて
あとは、インクルードするだけだったので、結構簡単です。
問題は初期設定。
$setting = array(
'host' => 'ssl://smtp.gmail.com',
'port' => '465',
'from' => 'sample@gmail.com',
'user' => 'sample@gmail.com',
'pass' => 'password',
'protocol' => 'SMTP_AUTH'
);
つまずいたのは、hostの部分とポートの部分。
まぁ調べたらすぐ解った事だったので、一件落着。
hostの部分は smtp.gmail.comとだけ入力してたのですがエラーがずっと出ていて
なんで!なんで!って思いながら
http://mail.google.com/support/bin/answer.py?hl=jp&answer=44793
を読むとSSLだったので、tlsでも動くと思うんですが上のURL見たら解決出来ました。
Qdsmtpの良い所は、mb_send_mail()と同じように扱えるので便利です。
例えば
$smtp = new QdSmtp($setting);
$smtp -> mail('送り先','件名','メール内容','ヘッダ(省略可)','パラメータ(省略可)');
とすれば、メール送信されます。
色々とQdsmtpの中身を見てましたが、便利なクラスです。
送信したいメールアドレスを配列にして
$mail_array = array('1@test.jp', '2@test.jp', '3@test.jp');
$smtp->to($mail_array);
でもOK!!
すごい便利ですねぇぇぇ
世の中、良い物が転がってますね。
QdsmtpはMITライセンスなので、ご自由にダウンロードして使用してください。
VBA TextBoxを配列処理する
Dim Val_Array as Variant
For i = 1 to 20
if UserForm1.Controls("TextBox" & i) = "" Then
Exit For
Else
Text_Val = UserForm1.Controls("TextBox" & i) & "," & Text_Val
End if
Next
Values = split(Text_Val, ",")
たぶん、考えたらもっといい方法あるんですが
なにぶん時間がなかったので、微妙なコードになっちゃいました・・・
まぁ、これで配列に格納出来るし良いかな・・・
For i = 1 to 20
if UserForm1.Controls("TextBox" & i) = "" Then
Exit For
Else
Text_Val = UserForm1.Controls("TextBox" & i) & "," & Text_Val
End if
Next
Values = split(Text_Val, ",")
たぶん、考えたらもっといい方法あるんですが
なにぶん時間がなかったので、微妙なコードになっちゃいました・・・
まぁ、これで配列に格納出来るし良いかな・・・
VBAでフォルダダイアログを開く
With Application.FileDialog(msoFileDialogFolderPicker)
if .Show = True Then
dir_path = .SelectedItems(1) & "¥"
End if
End With
WSHで作るダイアログの方が好きなんですが
まぁ、VBAで関数あるならそれ使っとこうってことで。
これを実行すると、フォルダを選択と言うダイアログが表示され
開きたいフォルダの所まで行ってOK押したら
変数 dir_path の中にそのフォルダまでのフルパスが格納される。
フォルダの中にある(サブフォルだも含む)情報を取り出した場合は
Dim buf As String
buf = Dir(dir_path & "*.*" , vbDirectory)
Do While buf <> ""
i = i + 1
Worksheets("Sheet1").Cells(i , 1) = dir_path
Worksheets("Sheet1").Cells(i , 2) = buf & "¥"
buf = Dir()
Loop
これで、サブフォルダの情報をぶっこ抜きます。
Dir(dir_path & "*.jpg", vbDirectory)とするとJPEGファイルを取り出せる。
これ結構忘れて、いつも探しまわっちゃうのでそろそろ保管しておこう
if .Show = True Then
dir_path = .SelectedItems(1) & "¥"
End if
End With
WSHで作るダイアログの方が好きなんですが
まぁ、VBAで関数あるならそれ使っとこうってことで。
これを実行すると、フォルダを選択と言うダイアログが表示され
開きたいフォルダの所まで行ってOK押したら
変数 dir_path の中にそのフォルダまでのフルパスが格納される。
フォルダの中にある(サブフォルだも含む)情報を取り出した場合は
Dim buf As String
buf = Dir(dir_path & "*.*" , vbDirectory)
Do While buf <> ""
i = i + 1
Worksheets("Sheet1").Cells(i , 1) = dir_path
Worksheets("Sheet1").Cells(i , 2) = buf & "¥"
buf = Dir()
Loop
これで、サブフォルダの情報をぶっこ抜きます。
Dir(dir_path & "*.jpg", vbDirectory)とするとJPEGファイルを取り出せる。
これ結構忘れて、いつも探しまわっちゃうのでそろそろ保管しておこう
登録:
投稿 (Atom)