我正在根据兴趣开发一个与Kik中的用户匹配的应用。 Kik用户可以与我编写的机器人聊天,然后机器人根据他们的兴趣将他们链接到Web应用程序中的页面。
Kik通过Kik api为我们提供了这个javascript(我在coffeescript中记录过)来检查用户是否授权应用访问他们的用户数据:
if kik.enabled
kik.getUser (user) ->
if user
这有效,但它必然将两个功能合二为一。也就是说,检查用户是否被授权并在kik.getUser
运行时提示用户授权两个触发器。
这是有问题的,因为我的网络应用程序应具有不同的功能,具体取决于用户是否已获得授权,其中一个功能是为用户提供“登记入住”功能。如果没有,则提示他们进行授权的按钮。
Kik是否提供单独的方法来检查用户是否已获得授权?
此外,有没有办法用JS识别实际授权事件(即用户实际按下“是”按钮,关闭要求授权的窗口)?
已经授权的用户是否可以“未经授权”,如果有,是否可以识别何时发生这种情况?
潜在的解决方法是存储"授权"我的用户数据库中的布尔值(或者更确切地说,只有在授权的情况下才在数据库中生成用户),并且只对已标记为已授权的用户运行kik.getUser。但是,如果用户可以变得“未经授权”,则可能无法正常工作。
答案 0 :(得分:1)
您正在寻找的API是 /**
* Description for 7.04 Weight project
*
`* @author (Your Name)
* @version (The Date)
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
public class Weight
{
// write static methods here
// Note: formula for finding weight on a planet: Earth weight divided by Gravity constant times surface gravity
public static void getGravity(double [] gravity)throws IOException
{
File fileName = new File("gravity.txt");
Scanner inFile = new Scanner(fileName);
int i = 0;
while(inFile.hasNext())
{
gravity[i] = inFile.nextDouble();
}
}
public static void printResults(String[] name, double gravity[] ,double[] weight)
{
for (int i = 0; i <=8; i++)
{
System.out.printf(" %-7s %3.1f %7s", name[i], gravity[i] , weight[i]);
}
}
public static double[] calcWeight(double [] gravity)
{
double myWeight = 100.0;
int i = 0;
for (i = 0; i <= 8; i++)
{
gravity[i] = gravity[i] * myWeight;
}
return gravity;
}
public static void main(String[] args)throws IOException
{
// Extension idea... instead of hard codeing the weight, you may propt the user for input.
double earthWeight = 100.0; // initalize Earth weight to 100 lbs.
String[] names = {"Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune", "Pluto"};
double[] gravity = getGravity(); // static method you write
double[] weight = calcWeight(earthWeight, gravity); // static method you write
printResults(names, gravity, weight); // static method you write
} //end main