亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

微信語音識別及網頁獲取用戶信息

系統 2282 0

微信快速開發框架V2.3--增加語音識別及網頁獲取用戶信息(八),代碼已更新至Github

?

不知不覺,版本以每周更新一次的腳步進行著,接下來應該是重構我的代碼及框架的結構,有朋友反應代碼有點亂,確實如此,當時寫的時候只是按照訂閱號來寫的,后來才慢慢增加到支持API接口。目前還在開發第三方微信平臺,旨在使用戶能夠無需自己開發就能簡易搭建微信平臺。

更新內容

1、增加支持 語音識別

2、增加“ 網頁授權獲取用戶基本信息

語音識別其實是對Voice信息的一個擴展,您必須啟用語音識別功能,啟用后會在VoiceMessage中增加一個Recongnition字段,我們可以判斷這個字段的內容進行響應。因為其實對Voice的一個擴展,此次更新在VoiceMessageRequest中加入了Recongnition字段。

在“網頁授權獲取用戶基本信息”中,我使用的是測試賬號,但發現了bug,我不知道只存在于測試賬號還是正式賬號也存在bug,目前我只有未認證的服務號可以測試,等下個月認證后我會測試下的。bug將在后面介紹。

此次內容的測試,我使用的是申請的測試號,大家可以自行申請,也可以加入我的測試號:

image ?( 因測試號僅支持20個粉絲,請親測試后,自覺取消關注,方便其他用戶測試

測試一:語音識別

在先前的 框架介紹 中,我使用了框架然后獲取博客園首頁文章,在此基礎上,我改變了下,我只要發送的語音中含有博客園就讓其響應相同結果。

首先,創建一個VoiceMessageRole實現IMessageRole:

        
          public class 
        
        
          VoiceMessageRole 
        
        
          : 
        
        
          IMessageRole

    
        
        
          {

        
        
        
          public 
        
        
          IMessageHandler 
        
        
          MessageRole(
        
        
          MiddleMessage 
        
        
          message)

        {

            
        
        
          var 
        
        
          request = message.RequestMessage 
        
        
          as 
        
        
          RequestVoiceMessage
        
        
          ;

            
        
        
          if 
        
        
          (request != 
        
        
          null
        
        
          )

            {

                
        
        
          //sMyLog.Log("語音識別:" + request.Recognition);

                
        
        
          if 
        
        
          (!
        
        
          String
        
        
          .IsNullOrEmpty(request.Recognition))

                {

                    
        
        
          if 
        
        
          (request.Recognition.IndexOf(
        
        
          "博客園文章"
        
        
          ) > -1)

                    {

                        
        
        
          return new 
        
        
          CnblogsArticleNewsMessageHandler
        
        
          ();

                    }



                    
        
        
          if 
        
        
          (request.Recognition.IndexOf(
        
        
          "博客園"
        
        
          ) > -1)

                    {

                        
        
        
          return new 
        
        
          CnblogsTextMessageHandler
        
        
          ();

                    }



                    
        
        
          return new 
        
        
          DefaultMessageHandler
        
        
          ();

                }

                
        
        
          else

                
        
        
          {

                    
        
        
          return new 
        
        
          VoiceMessageHandler
        
        
          ();

                }

            }

            
        
        
          else

            
        
        
          {

                
        
        
          return new 
        
        
          DefaultMessageHandler
        
        
          ();

            }

        }

    }
        
      

?

?

規則的話可以自己定義,我這里就不重復造輪子了。在【MsgTypeMessageRole】規則中,增加對Voice的規則判斷,使其進入到VoiceMessageRole規則。

接下來看下結果:

image ?語音一:博客園

image ?語音二:博客園文章

測試二:網頁授權獲取用戶信息

通過文檔,我們知道在使用網頁授權這里,會使用OAuth2來完成授權的,文檔中介紹如果使用Scope為Snsapi_userinfo可以不關注也能通過網頁授權獲取用戶信息,經測試無效,必須為關注用戶才能獲取。網頁授權用戶信息步驟如下:

第一步:設置回調域名,測試賬號在

image

進行修改,網頁授權的域名僅對設置的域名有效,其下級域名都無效

image

第二步:用戶同意授權,獲取Code

這里我們就是生成一個鏈接,用戶使用手機微信進入后,就能獲取Code,鏈接是自己創建的,為了方便,我在框架中加了一個OAuthHelper類,您可以快速創建相應鏈接,使用方式如下:

        
          new
        
         OAuthHelper(
        
          string
        
         appId).BuildOAuthUrl(
        
          string
        
         redirectUrl, OAuthScope scope, 
        
          string
        
         state);
      

?

?

?

這個只是輔助類,您也可以自己寫一個

根據OAuthScope的不同,顯示也不同,Base方式下會直接跳轉到redirectUrl,userinfo方式下會顯示授權頁面,點擊同意后會跳轉到redirecturl。

第三步:獲取AccessToken和OpenId

Code可以通過Request[“Code”]獲取,獲取后,通過以下方式獲取AccessToken和OpenId:

        
          var 
        
        
          request = 
        
        
          new 
        
        
          SnsOAuthAccessTokenRequest

            
        
        
          {

                AppID = m_appIdent.AppID,

                AppSecret = m_appIdent.AppSecret,

                Code = Label1.Text

            };

            
        
        
          var 
        
        
          response = m_client.Execute(request);
        
      

response為SnsOAuthAccessTokenResponse類型,包含以下屬性:

image

第四步:通過AccessToken獲取用戶信息:

        
          SnsUserInfoRequest 
        
        
          request = 
        
        
          new 
        
        
          SnsUserInfoRequest

            
        
        
          {

                OAuthToken = accesstoken,
          
Lang =
Language .CN, OpenId = OpenId }; SnsUserInfoResponse response = m_client.Execute(request);

這里要注意的是OAuthToken為第三步獲取的Token,并非之前我們用的AccessToken。

SnsUserInfoResponse包含了如下用戶信息:

image

至此,獲取用戶信息結束。

網頁授權獲取用戶信息BUG

這個Bug我不知道是不是只在測試賬號中出現,因為我沒有正式賬號,所以無法下判斷。Bug如下:

1、Scope為Snsapi_Base時,也能獲取用戶基本信息(第四步),但在文檔中說明是Base情況下是無法獲取用戶信息,只能獲取到OpenId。

2、Scope為Snsapi_UserInfo時,必須為關注用戶,但在文檔中介紹,沒有關注的用戶在彈出授權窗口授權后也能進行瀏覽及獲取用戶信息。

以上Bug已提交至微信,但還未回復,或許會更近。

實戰測試

請先加我的測試賬號,然后使用微信掃一掃功能,掃描二維碼:

image ???????????????? image

????? (Snsapi_Base)???????????????????????????? (Snsapi_Userinfo)

掃描后會轉到相應鏈接,您可以點擊“獲取AccessToken”,“刷新AccessToken”和“獲取用戶信息”進行測試。結果截圖如下:

image

?

?

?

寫在最后

自從發布了微信快速開發框架以來,收到了很多朋友的關注,也在得到反饋后逐步的改善。在和朋友的探討中,發覺在微信公眾平臺的開發中,難得不是開發,而且微信平臺對接口的一些限制,我們只有到了認證的服務號后才能使用完全的高級接口,對于很多朋友來說,基本上都是認證過的訂閱號,所以很多測試都無法進行,希望后續微信平臺會放寬限制。

明天去坐郵輪去臺灣了,大家以后想旅游,做簽證之類都可以找我,可以加我私信:jamesying1,不定期會發些特價旅游線路。作為碼農,必要的放松還是需要的,大家不要太累,身體是革命的本錢。

技術改變生活,技術改變人生!用技術來創造價值,擁有技術,不僅僅是開發,您將獲得更多!如果您覺得我能幫到您,您可以通過掃描下面二維碼來【捐助】我!
?

微信語音識別及網頁獲取用戶信息


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国内偷自视频区视频综合 | 九九天天影视 | 伊人不卡久久大香线蕉综合影院 | 亚洲一区二区日韩欧美gif | 国产精品免费大片一区二区 | 四虎久久久 | 亚洲综合色在线 | 欧美色图一区二区 | 九九热免费观看 | 一区二区三区免费在线视频 | 色猫咪av在线网址 | 日韩欧美中文字幕一区二区三区 | 四虎免费在线观看视频 | 日本精品一区二区三区视频 | 欧美19p | 九九51精品国产免费看 | 国产探花视频在线观看 | 亚欧精品一区二区三区 | 亚洲色图插插插 | 欧美成人全部费免网站 | 91国内视频在线观看 | 精品亚洲一区二区三区在线播放 | 午夜精品网站 | 99视频在线国产 | 一本大道香蕉大vr在线吗视频 | 欧美日韩影视 | 国产香蕉精品视频在 | 久久国产精品老女人 | 国产精品午夜免费福利视频 | 日韩欧美一区二区三区 | 成人精品 | 国产波波社区精品视频 | 日韩一区二区三区在线免费观看 | 欧美日韩国产片 | 国产精品综合一区二区 | 在线视频亚洲 | 欧美性色黄大片一级毛片视频 | 兽王高清完整在线观看 | 天天做天天干 | 一品毛片| 国产一区二区播放 |