WHMCS intellisearch from shell - bash

WHMCS does not offer full search via API so I was wondering if there is a way to it in other ways via shell (yes, it needs to be bash).
The goal is to perform a full search (clients, products,orders, tickets, domains etc ...).
For example, I might have a client that registered an account under a certain domain that was registered elsewhere. Using the GetDomains/GetClients/GetOrders is will not yield results. Yet, the account's main domain is linked to the account.
Performing a full search checks it all and the results can be filtered and that is what I need.
Any ideas?

I have never heared of search via API in WHMCS unfortunately. Would like that as well.
But you should be able to create something with CURL and hit the search.php which is used in admin search interface.
parameters:
value=[Your search string]
intellisearch=1
token=[You have to curl a page first and parse the html to get this]
Make sure to first login against WHMCS with your script.
This is not the most beautiful solution, but the easiest if you don't want to access database directly.

Related

Google Custom Search Engine API Image Search not returning results

Just setup my CSE with Image Search enabled in the Basics tab, but still ain't getting results.
If I don't use searchType=image in the query it works, if I put it back it stops working with no errors, just no results.
Any inputs?
It seems there are two elements required to consume the Google search API, the configuration of the API key and credentials.
Setup the API key here https://console.developers.google.com/project
and create your own CSE here https://www.google.co.uk/cse/all
I made the mistake like a lot of people of ignoring the CSE side of the setup (it didn't seem logical to search only my own site).
You need to create a CSE though, point it to search any url (I don't think it matters greatly), and then where it says "Sites to search" chose "Search the entire web but emphasise included sites". Also then set image search to "On".
Once you've done this browse to your new CSE, the url should contain your CX code e.g. cx=014341056213260336986:v4fl8n8sabc, you then need to use this in your request query string.
Your API query should now start returning results.
Image search needs to be switched to ON at the Custom Search Setup->Basics

Google Custom Search API- Get results specific user location

As in normal Google search page, Google returns me results specific to my location. As i am considering/assuming for this, it gets my ip address my request, find uses location for it and returns the results.
I am writing the proxy server for search engines. So from user browser i get requests for some search terms and server returns search results.
I am curious to know, if from Custom Search API can i get the such results based on some IP address i provide or anything like that, so that i can mock the user location in my proxy server and pretend the Google Custom Search to be that user and get the location specific results
PS.I am new to this search engine api world, so please understand me.
Yes, you can, but just for the country, not the exact location.
Here is the docs for parameters of a query request:
https://developers.google.com/custom-search/json-api/v1/reference/cse/list
Look at the 'gl' parameter.
I'm not aware of any way to specify the location more precisely then this.
After these many years I'm not sure if you still need it, but I found it hard to find a helpful answear, so here's the solution for whoever needs it.
You can achieve that behavior with the "?gl=" query param as mentioned here, and pass the value as one of the country codes.
Worked for me, hope it helps someone!

Google API returning different results than website

When I do a site-specific search on google.com:
site:http://one-month-of-chat-logs.github.io security
I get 12 results. I signed up for a custom search engine (cx: 015271449006306103053:mz6wkimeenc) and API key, and I get only 3 results when I run the same search:
$ curl 'https://www.googleapis.com/customsearch/v1?key=$MY_API_KEY&cx=015271449006306103053%3Amz6wkimeenc&q=security'
Why do the results differ? Is my API request actually querying something different than the search I performed on google.com?
This google page has what you are looking for https://support.google.com/customsearch/answer/70392?hl=en
your results are unlikely to match those returned by Google Web Search, for several reasons:
Even if a custom search engine is configured to search the entire web,
it’s designed to emphasize results from your own sites.
Your custom search engine doesn’t include Google Web Search features such as
Oneboxes, real-time results, universal search, social feaures, or
personalized results.
If your custom search engine includes more than
ten sites, the results may be from a subset of our index and may
differ from the results of a 'site:' search on Google.com.
I found that it is impossible to get the right results using Google APIs. Even if the search is only for one website, their search results are different if you use their UI vs use the API and pay for it. This is I guess, because google makes more money if they can show ads, while APIs are definitely only a face saving measure.
Since some of you are ok with a paid solution(#ihsan) you can try using a third party service like https://www.expertrec.com where you can control your crawl (so crawl depth is not a problem), ranking (adjust it the way you like), use the API or the full solution, with out any ads.

Does Firefox stores keywords in its Google Analytics cookie?

I'm trying to extract the keyphrase someone used to land on a website. And since I have the Google Analytics script, I should be able to get the cookie name ___utmz and then look for the string "utmctr=...." to find what keywords.
However, in Firefox, no matter what, I always see (not provided)
utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)
Is there a way to extract the keywords if someone visited using FF?
This has nothing to do with Google Analytics or Firefox but instead is a result of how keywords are handled for SSL searches with Google. In those cases, Google search will not pass along the keyword in the referral and instead sets the value to (not provided). For details see the keyword section in https://support.google.com/analytics/answer/1033173

having chrome extensions pulling data from ruby db

I would like to build a chrome extension (CE) that pulls data from a ruby db for a specific user. So, in a basic example, if an user submits their favorite color as 'red' and sport as 'tennis' into the db from the core website, when they click the CE, 'red' and 'tennis' will show up no matter where they are on the internet.
Any guidance on how to build something like this? Seems quite simple but am not sure how the CE files fit in with the ruby folder framework.
Also, is it possible to write to a ruby database from a popped out CE? i.e. - submitting 'red' and 'tennis' from the CE to the ruby database to go along with the previous example. Any guidance?
Cheers
This is a very general question so it sounds like you will need to learn a lot. Which can be a good thing :)
Here are the general steps you need:
Look into building an API for your ruby application. This will allow you to get data from your database. For example, you can
make an app where you go to http://yoursite.com/api/favorites and that will return a list of all favorites as JSON. Then in your Chrome Extension you can parse the JSON and display the results to the user. You will probably want to do this using an ajax call (see jquery.ajax for an easy way to use ajax).
Assuming you want user accounts, your user will need to be logged in. Then you can use your user's cookies to verify that they are logged in and show them custom info. i.e. going to http://yoursite.com/api/favorites will just show the favorites for that user, not for everyone.
Finally, submitting things to the database...you can have another route where users can send stuff. For example, if you go to http://yoursite.com/api/favorites/add?color=red then it will add the color red to that user's favorites. You will need to write all the logic for adding stuff to the database...again, it might help you to go through a rails tutorial and then look at building an API.
Related to #3, look into RESTful APIs. A good convention is that if you issue a GET request, you're asking for data, but if you issue a POST request, you are adding data (in your case, creating a new favorite).
Finally, for terminology: it's not a "ruby" database, it's just a database. You can access a database using almost any language, and it sounds like you are accessing it using ruby right now :)
If you only need to store data for one machine browsing anywhere online, chrome has a storage api that would work great.
If you do need a ruby server, I would recommend looking at sinatra.

Resources