Ruby on Rails,从Graphql获取数据并在其上发布到Facebook-messenger

时间:2016-10-23 07:23:00

标签: ruby-on-rails ruby ruby-on-rails-4 facebook-graph-api graphql

  $message_text = message.text
  module STAPI
    HTTP = GraphQL::Client::HTTP.new("API_ADDRESS")
    Schema = GraphQL::Client.load_schema(HTTP)
    Client = GraphQL::Client.new(schema: Schema,execute: HTTP)
  end

  module Sticker
    Query = STAPI::Client.parse <<-'GRAPHQL'
      {
        stickers(query: "#{$message_text}", first: 21, after: "") {
          edges {
            node {
              fileUrl(fullWatermarked: true)
            }
          }
        }
      }
    GRAPHQL
  end

  result = STAPI::Client.query(Sticker::Query)

首先,这是一个信使机器人和这个信使机器人我正在接受用户输入,我正在搜索我们数据库中的输入然后我发布与输入相关的东西。

所以,在我无法搜索的代码中,我认为query: "#{$message_text}"已被破坏。

我使用message.text输入用户。这个输入是这样的,你好&#39; (用&#39;)。但我需要给query: "#{$message_text}"这样的部分&#34;你好&#34;(&#34;)。我如何给messenger.text查询这样的部分&#34;你好&#34;

1 个答案:

答案 0 :(得分:0)

我相信你已经知道如何根据你在other question中所写的内容来完成这项工作。对于面临同样问题的其他人,请查看variables。您的示例将如下所示:

$message_text = message.text
module STAPI
  HTTP = GraphQL::Client::HTTP.new("API_ADDRESS")
  Schema = GraphQL::Client.load_schema(HTTP)
  Client = GraphQL::Client.new(schema: Schema,execute: HTTP)
end

module Sticker
  Query = STAPI::Client.parse <<-'GRAPHQL'
    query Q($message: String) {
      stickers(query: $message, first: 21, after: "") {
        edges {
          node {
            fileUrl(fullWatermarked: true)
          }
        }
      }
    }
  GRAPHQL
end

result = STAPI::Client.query(Sticker::Query, variables: {message_text: $message_text})