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

MyMemoWiki

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

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
(ページの作成:「==mixi アプリ Twitter 検索== [mixi アプリ] ===Twitter の 検索を行うサンプル=== *Twitter の 検索を行う File:0800_mixi_app_twitter01.jpg…」)
 
1行目: 1行目:
 
==mixi アプリ Twitter 検索==
 
==mixi アプリ Twitter 検索==
[mixi アプリ]
+
[[mixi アプリ]]
 
===Twitter の 検索を行うサンプル===
 
===Twitter の 検索を行うサンプル===
  
10行目: 10行目:
 
*[http://code.google.com/intl/ja/apis/gadgets/docs/remote-content.html#Fetch_JSON Google Gadgets API JSON利用サンプル]
 
*[http://code.google.com/intl/ja/apis/gadgets/docs/remote-content.html#Fetch_JSON Google Gadgets API JSON利用サンプル]
  
  <?xml version="1.0" encoding="UTF-8" ?>
+
  &lt;?xml version="1.0" encoding="UTF-8" ?&gt;
  <Module>
+
  &lt;Module&gt;
   <ModulePrefs title="twitter search sample">
+
   &lt;ModulePrefs title="twitter search sample"&gt;
     <Require feature="opensocial-0.8"/>
+
     &lt;Require feature="opensocial-0.8"/&gt;
   </ModulePrefs>
+
   &lt;/ModulePrefs&gt;
   <Content type="html">
+
   &lt;Content type="html"&gt;
       <![CDATA[
+
       &lt;![CDATA[
         <style type="text/css">
+
         &lt;style type="text/css"&gt;
 
             a:active, a:hover, .b:active, .link:active {
 
             a:active, a:hover, .b:active, .link:active {
 
                 color:#AAAAAA;
 
                 color:#AAAAAA;
27行目: 27行目:
 
                 text-decoration:none;
 
                 text-decoration:none;
 
             }       
 
             }       
         </style>
+
         &lt;/style&gt;
         <script type="text/javascript">
+
         &lt;script type="text/javascript"&gt;
 
             /**
 
             /**
 
               * mixi アプリ : Twitterの検索を行う
 
               * mixi アプリ : Twitterの検索を行う
53行目: 53行目:
 
                 var next_page = jsondata['next_page'];
 
                 var next_page = jsondata['next_page'];
 
                 if (next_page) {
 
                 if (next_page) {
                     html += "<a href='javascript:search_twitter(\"" + next_page + "\");'>next page</a>";
+
                     html += "&lt;a href='javascript:search_twitter(\"" + next_page + "\");'&gt;next page&lt;/a&gt;";
                     html += "<br/>";
+
                     html += "&lt;br/&gt;";
 
                 }
 
                 }
 
                 var results = jsondata['results'];
 
                 var results = jsondata['results'];
                 html +="<table border='0'>";
+
                 html +="&lt;table border='0'&gt;";
                 for (var i=0; i<results.length; i++) {
+
                 for (var i=0; i&lt;results.length; i++) {
 
                     var result = results[i];
 
                     var result = results[i];
                     html += "<tr style='font-size:small;'>";
+
                     html += "&lt;tr style='font-size:small;'&gt;";
                     html +=  "<td>";
+
                     html +=  "&lt;td&gt;";
                     html +=    "<a href='http://twitter.com/" + result['from_user'] + "' target='_blank'>";
+
                     html +=    "&lt;a href='http://twitter.com/" + result['from_user'] + "' target='_blank'&gt;";
                     html +=        "<img src='" + result['profile_image_url'] + "' border='none'/>";
+
                     html +=        "&lt;img src='" + result['profile_image_url'] + "' border='none'/&gt;";
                     html +=    "</a>";
+
                     html +=    "&lt;/a&gt;";
                     html +=  "</td>";
+
                     html +=  "&lt;/td&gt;";
                     html +=  "<td>";
+
                     html +=  "&lt;td&gt;";
                     html +=    "<a href='http://twitter.com/" + result['from_user'] + "' target='_blank'>";
+
                     html +=    "&lt;a href='http://twitter.com/" + result['from_user'] + "' target='_blank'&gt;";
                     html +=      "<span style='color:#2FC2EF;font-weight:bold;'>" + result['from_user'] + ":</span>"
+
                     html +=      "&lt;span style='color:#2FC2EF;font-weight:bold;'&gt;" + result['from_user'] + ":&lt;/span&gt;"
                     html +=    "</a>";
+
                     html +=    "&lt;/a&gt;";
                     html +=    createLink(result['text']) + "</br>";
+
                     html +=    createLink(result['text']) + "&lt;/br&gt;";
                     html +=  "</td>";
+
                     html +=  "&lt;/td&gt;";
                     html += "</tr>";
+
                     html += "&lt;/tr&gt;";
 
                 }
 
                 }
                 html += "</table>";
+
                 html += "&lt;/table&gt;";
 
                  
 
                  
 
                 document.getElementById('content_div').innerHTML = html;
 
                 document.getElementById('content_div').innerHTML = html;
88行目: 88行目:
 
                 var ary = ptn.exec(text);
 
                 var ary = ptn.exec(text);
 
                 while(ary) {
 
                 while(ary) {
                     ret = ret.replace(ary[0], "<a href='" + RegExp.$1 + "' target='_blank'>" + ary[0] + "</a>");
+
                     ret = ret.replace(ary[0], "&lt;a href='" + RegExp.$1 + "' target='_blank'&gt;" + ary[0] + "&lt;/a&gt;");
 
                     ary = ptn.exec(text);
 
                     ary = ptn.exec(text);
 
                 }
 
                 }
99行目: 99行目:
 
                 var ary = ptn.exec(text);
 
                 var ary = ptn.exec(text);
 
                 while(ary) {
 
                 while(ary) {
                     ret = ret.replace(ary[0], "<a href='http://twitter.com/" + RegExp.$1 + "' target='_blank'>" + ary[0] + "</a>");
+
                     ret = ret.replace(ary[0], "&lt;a href='http://twitter.com/" + RegExp.$1 + "' target='_blank'&gt;" + ary[0] + "&lt;/a&gt;");
 
                     ary = ptn.exec(text);
 
                     ary = ptn.exec(text);
 
                 }
 
                 }
117行目: 117行目:
 
                 return ret;
 
                 return ret;
 
             }
 
             }
         </script>
+
         &lt;/script&gt;
         <input type="text" size="16" id="q"/><input type="button" name="search" value="twitter search" onclick="javascript:search_twitter();"/>
+
         &lt;input type="text" size="16" id="q"/&gt;&lt;input type="button" name="search" value="twitter search" onclick="javascript:search_twitter();"/&gt;
         <div id="content_div"/>
+
         &lt;div id="content_div"/&gt;
       ]]>
+
       ]]&gt;
   </Content>
+
   &lt;/Content&gt;
  </Module>
+
  &lt;/Module&gt;

2020年2月15日 (土) 08:04時点における版

mixi アプリ Twitter 検索

mixi アプリ

Twitter の 検索を行うサンプル

  • 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>