| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「Mixi アプリ Twitter 検索」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の1版が非表示)
1行目: 1行目:
==mixi アプリ Twitter 検索==
+
==[[mixi アプリ Twitter 検索]]==
[[mixi アプリ]]
+
[[mixi アプリ]] |
===Twitter の 検索を行うサンプル===
+
===[[Twitter]] の 検索を行うサンプル===
  
*Twitter の 検索を行う
+
*[[Twitter]] の 検索を行う
 
[[File:0800_mixi_app_twitter01.jpg]]
 
[[File:0800_mixi_app_twitter01.jpg]]
  
13行目: 13行目:
 
  <Module>
 
  <Module>
 
   <ModulePrefs title="twitter search sample">
 
   <ModulePrefs title="twitter search sample">
     <Require feature="opensocial-0.8"/>
+
     <[[R]]equire feature="opensocial-0.8"/>
 
   </ModulePrefs>  
 
   </ModulePrefs>  
 
   <Content type="html">
 
   <Content type="html">
30行目: 30行目:
 
         <script type="text/javascript">
 
         <script type="text/javascript">
 
             /**
 
             /**
               * mixi アプリ : Twitterの検索を行う
+
               * [[mixi アプリ]] : Twitterの検索を行う
 
               */
 
               */
 
             function search_twitter(url) {
 
             function search_twitter(url) {
42行目: 42行目:
 
                 params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;
 
                 params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;
 
                 params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
 
                 params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
                 gadgets.io.makeRequest(url, searchResponse, params);
+
                 gadgets.io.make[[R]]equest(url, search[[R]]esponse, params);
 
             }
 
             }
 
             /**
 
             /**
 
               * 検索結果処理
 
               * 検索結果処理
 
               */
 
               */
             function searchResponse(responseObj) {
+
             function search[[R]]esponse(responseObj) {
 
                 var html = "";
 
                 var html = "";
 
                 var jsondata = responseObj.data
 
                 var jsondata = responseObj.data
76行目: 76行目:
 
                 html += "</table>";
 
                 html += "</table>";
 
                  
 
                  
                 document.getElementById('content_div').innerHTML = html;
+
                 document.getElementById('content_div').inner[[HTML]] = html;
 
             }
 
             }
 
             function createLink(text) {
 
             function createLink(text) {
                 // URL置き換えの正規表現がなぜか行末にマッチしないので最後にスペース1文字付加
+
                 // URL置き換えの[[正規表現]]がなぜか行末にマッチしないので最後にスペース1文字付加
 
                 return toUserUrlText(toFuzzyUrlText(text + ' '));
 
                 return toUserUrlText(toFuzzyUrlText(text + ' '));
 
             }
 
             }
             /** ちょっといい加減にURLをリンクに変更する関数 */
+
             /** ちょっといい加減にURLを[[リンク]]に変更する関数 */
 
             function toFuzzyUrlText(text) {
 
             function toFuzzyUrlText(text) {
 
                 var ret = text;
 
                 var ret = text;
93行目: 93行目:
 
                 return ret;
 
                 return ret;
 
             }
 
             }
             /** ちょっといい加減にTwitter IDをリンクに変更する関数 */
+
             /** ちょっといい加減に[[Twitter]] IDをリンクに変更する関数 */
 
             function toUserUrlText(text) {
 
             function toUserUrlText(text) {
 
                 var ret = text;
 
                 var ret = text;
105行目: 105行目:
 
             }
 
             }
 
             /**
 
             /**
               * HTTP GETリクエストパラメータを生成
+
               * [[HTTP]] GETリクエストパラメータを生成
 
               */
 
               */
 
             function makeHttpParam(param_id, isFirstParam) {
 
             function makeHttpParam(param_id, isFirstParam) {
113行目: 113行目:
 
                 if (paramObj != null) {
 
                 if (paramObj != null) {
 
                     ret = ((isFirstParam)?"?":"&") + param_id + "="
 
                     ret = ((isFirstParam)?"?":"&") + param_id + "="
                           + encodeURIComponent(paramObj.value);
+
                           + encodeU[[R]]IComponent(paramObj.value);
 
                 }
 
                 }
 
                 return ret;
 
                 return ret;

2020年2月16日 (日) 04:29時点における最新版

mixi アプリ Twitter 検索

mixi アプリ |

Twitter の 検索を行うサンプル

0800 mixi app twitter01.jpg

ソース

<?xml version="1.0" encoding="UTF-8" ?> 
<Module>
  <ModulePrefs title="twitter search sample">
    <Require feature="opensocial-0.8"/>
  </ModulePrefs> 
  <Content type="html">
     <![CDATA[
        <style type="text/css">
            a:active, a:hover, .b:active, .link:active {
                color:#AAAAAA;
                text-decoration:underline;
            }
            a, .link {
                color:#2694E8;
                cursor:pointer;
                text-decoration:none;
            }       
        </style> 
        <script type="text/javascript">
            /**
             * mixi アプリ : Twitterの検索を行う
             */
            function search_twitter(url) {
                var baseurl = "http://search.twitter.com/search.json";
                if (url) {
                    url = baseurl + url;
                } else {
                    url = baseurl + makeHttpParam('q', true);
                }
                var params = {};
                params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;
                params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
                gadgets.io.makeRequest(url, searchResponse, params);
            }
            /**
             * 検索結果処理
             */
            function searchResponse(responseObj) {
                var html = "";
                var jsondata = responseObj.data
                
                var next_page = jsondata['next_page'];
                if (next_page) {
                    html += "<a href='javascript:search_twitter(\"" + next_page + "\");'>next page</a>";
                    html += "<br/>";
                }
                var results = jsondata['results'];
                html +="<table border='0'>";
                for (var i=0; i<results.length; i++) {
                    var result = results[i];
                    html += "<tr style='font-size:small;'>";
                    html +=   "<td>";
                    html +=     "<a href='http://twitter.com/" + result['from_user'] + "' target='_blank'>";
                    html +=         "<img src='" + result['profile_image_url'] + "' border='none'/>";
                    html +=     "</a>";
                    html +=   "</td>";
                    html +=   "<td>";
                    html +=     "<a href='http://twitter.com/" + result['from_user'] + "' target='_blank'>";
                    html +=       "<span style='color:#2FC2EF;font-weight:bold;'>" + result['from_user'] + ":</span>"
                    html +=     "</a>";
                    html +=     createLink(result['text']) + "</br>";
                    html +=   "</td>";
                    html += "</tr>";
                }
                html += "</table>";
                
                document.getElementById('content_div').innerHTML = html;
            }
            function createLink(text) {
                // URL置き換えの正規表現がなぜか行末にマッチしないので最後にスペース1文字付加
                return toUserUrlText(toFuzzyUrlText(text + ' '));
            }
            /** ちょっといい加減にURLをリンクに変更する関数 */
            function toFuzzyUrlText(text) {
                var ret = text;
                var ptn = /(http:\/\/.*?)[ $]/g; // 行末にマッチしない???
                var ary = ptn.exec(text);
                while(ary) {
                    ret = ret.replace(ary[0], "<a href='" + RegExp.$1 + "' target='_blank'>" + ary[0] + "</a>");
                    ary = ptn.exec(text);
                }
                return ret;
            }
            /** ちょっといい加減にTwitter IDをリンクに変更する関数 */
            function toUserUrlText(text) {
                var ret = text;
                var ptn = /@([A-Za-z]{1,}?):/g;
                var ary = ptn.exec(text);
                while(ary) {
                    ret = ret.replace(ary[0], "<a href='http://twitter.com/" + RegExp.$1 + "' target='_blank'>" + ary[0] + "</a>");
                    ary = ptn.exec(text);
                }
                return ret;
            }
            /**
             * HTTP GETリクエストパラメータを生成
             */
            function makeHttpParam(param_id, isFirstParam) {
                isFirstParam = !(isFirstParam == undefined);
                var paramObj = document.getElementById(param_id);
                var ret = "";
                if (paramObj != null) {
                    ret = ((isFirstParam)?"?":"&") + param_id + "="
                         + encodeURIComponent(paramObj.value);
                }
                return ret;
            }
        </script>
        <input type="text" size="16" id="q"/><input type="button" name="search" value="twitter search" onclick="javascript:search_twitter();"/>
        <div id="content_div"/>
     ]]>
  </Content> 
</Module>